2016-12-19 21 views
-2

以下のLINQメソッド構文をLINQクエリ構文に変換するにはどうすればよいですか。これを行うのに役立つツールはありますか? LINQPADはQuery構文からMethod構文に変換できますが、その逆はできません。私はそれをクエリ構文に変換する理由は、LINQクエリに記載されているすべてのテーブルからいくつかの列を選択できるように、モデルへの投影を行うことです。LINQメソッド構文をLINQに変換する方法クエリ構文

var queryResult = CurrentContext.Set<AM_Response_T>().Include(t => t.AM_Master_T) 
     .Include(t => t.AM_Supporting_Evidences_T) 
     .Include("AM_Supporting_Evidences_T.Ticket_Repository_T") 
     .Include(t => t.AM_Response_Validation_T) 
     .Include("AM_Response_Validation_T.Amazon_Users_T") 
     .Include("AM_Response_Validation_T.Amazon_Users_T1") 
     .Include("AM_Response_Validation_T.AM_Validator_Type_T") 
     .Include(t => t.Catalog_Type_T) 
     .Include(t => t.Skills_T) 
     .Include("Skills_T.Record_Status_T") 
     .Include("Skills_T.BE_PS_Skill_Map_T") 
     .Include("Skills_T.BE_PS_Skill_Map_T.Skills_T1") 
     .Include("Skills_T.BE_PS_Skill_Map_T.Skills_T1.Record_Status_T") 
     .Include("Skills_T.BE_PS_Skill_Map_T.Skills_T1.BE_PS_Skill_Map_T") 
     .Include("Skills_T.BE_PS_Skill_Map_T.Skills_T1.KE_PS_Skill_Map_T") 
     .Include("Skills_T.KE_PS_Skill_Map_T") 
     .Include("Skills_T.KE_PS_Skill_Map_T.Skills_T1") 
     .Include("Skills_T.KE_PS_Skill_Map_T.Skills_T1.Record_Status_T") 
     .Include("Skills_T.KE_PS_Skill_Map_T.Skills_T1.BE_PS_Skill_Map_T") 
     .Include("Skills_T.KE_PS_Skill_Map_T.Skills_T1.KE_PS_Skill_Map_T") 
     .Include(t => t.Skill_Levels_T) 
     .Include(t => t.Skills_T.Skill_Levels_T) 
     .Include(t => t.Questions_T) 
     .Include(t => t.Questions_T.Question_Type_T) 
     .Include(t => t.AM_Master_T.AM_Master_Member_Map_T) 
     .Include(t => t.AM_Master_T.AM_Master_SPR_Map_T) 
     .Include(t => t.AM_Master_T.AM_Master_FSPR_Map_T) 
     .Include(t => t.AM_Master_T.AM_Master_FRP_Map_T) 
     .Include(t => t.AM_Master_T.AM_Master_Org_Function_Map_T) 
     .Include(t => t.AM_Master_T.AM_Master_RRP_Map_T) 
     .Include(t => t.AM_Master_T.AM_Master_Skills_Map_T) 
     .Include(t => t.AM_Master_T.AM_Master_FCM_Position_T) 
     .Include("AM_Master_T.AM_Master_FCM_Position_T.FCM_Position_T") 
     .Include(t => t.Amazon_Users_T) 
     .Include(t => t.Amazon_Users_T1) 
     .Include(t => t.AM_Response_Activity_T); 
+3

Resharperは前後に切り替えることができます。Resharperは購入前にシナリオで動作するかどうかテストすることができます。しかし、C#で働くすべての人に買う価値があります。 – nvoigt

+1

あなたが投稿したコードには実際のクエリはありません。したがって、何も変換することはできません。 – Enigmativity

+0

@Enigmativity SQLクエリを意味しますか? –

答えて

0

この場合、クエリ構文を使用する必要はありません。メソッド構文は正常に機能します。あなたはモデルにあり、プロジェクトに.Select()と.ToList()を使用することができます。

List<ModelYouWantToProjectTo> queryResult = CurrentContext.Set<AM_Response_T>() 
    .Include(t => t.AM_Master_T) 
    .Include(t => t.AM_Supporting_Evidences_T) 
    // Skipped a few 
    .Include(t => t.AM_Response_Activity_T) 
    .Select(t => new ModelYouWantToProjectTo 
     { 
      ModelProperty = t.Property, 
      // Etc... 
     }) 
    .ToList(); 

を私の知る限り、クエリ構文について.INCLUDEのない同等の()はありません承知しているよう。あなたは2つの構文を混在させることができますが、私はそれがはっきりと読まれないことがわかります。

+1

関連する注記では、あなたの質問に本当に答えるものではないので、コメントで.Includesはエンティティ全体の投影であるモデルの部分にのみ影響します。プロパティを選択して選択すると、インクルードは無視されます。 – MarkFl

関連する問題