2016-12-19 81 views
-2

如何轉換下面的LINQ方法語法LINQ查詢語法?有沒有一種工具可以幫助做到這一點?我知道LINQPAD可以從查詢語法轉換爲方法語法,但反之亦然。我想將其轉換爲查詢語法的原因是爲了做一些投影到一個模型,這樣我可以從所有的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的可以來回切換,他們有一個試驗,你可以測試它是否適合你的情況,你買它之前。但值得購買C#工作的每個人。 – nvoigt

+1

有你張貼在代碼中沒有實際的查詢 - 所以沒有什麼可以轉換。 – Enigmativity

+0

@Enigmativity你的意思是SQL查詢嗎? –

回答

0

你並不需要使用此查詢語法,語法的方法將工作得很好。因爲我知道有沒有.INCLUDE的當量()查詢語法

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(); 

據:您可以在那裏和項目中使用。選擇()和.ToList()的模型。你可以混合使用這兩種語法,但是我發現它並不是很清楚。

+1

在相關說明中,在評論中,因爲它沒有真正回答您的問題,所以.Includes只會影響模型中對整個實體進行投影的部分。如果您挑選屬性,則會忽略包含。 – MarkFl

相關問題