2012-06-18 54 views
4

我有一個名爲M1的主表,它由三個單獨的表T1,T2和T3的ID組成。LINQ查詢將3個表加入到一個表中

我需要使用它們的ID加入3個表到M1,並顯示他們的名字 爲此,我現在用的是下面的查詢:

var query= (from i in dbContext.M1 
      join j in dbContext.T1 on i.Mt1_id equals j.Mt1_id 
      join l in dbContext.T2 on i.Mt2_id equals l.Mt2_id 
      join s in dbContext.T3 on i.Mt3_id equals s.Mt3_id 
      where i.Mid >= 1 
      select new 
      { 
       a=j.name, 
       b=l.name, 
       c=s.name 
      }).ToArray(); 

我已經使用這個方法,但我得到一個錯誤,指出「Type inference failed in call to Join

請問任何人請告訴我我哪裏出了錯?

+0

其中a,b和c已定義。它們是否與i.name,l.name和s.name類型相同?此外,我假設用於等於的Id也是相同的類型。 –

+0

j.name,l.name和s.name具有相同的類型,即字符串..它們存在於表格T1 T2和T3.I中,在視圖中再次定義a,b,c用於顯示。 – SahithiPinisetty

+0

你可以通過你的匿名類型查詢的foreach循環指定一個= j.name,b = l.name,c = s.name。 –

回答

1

請檢查數據類型的列以避免「類型推斷在調用連接失敗」異常