0
我是一個初學者初學者,具有實體框架,我需要您的幫助來構建查詢。實體框架 - 在實體集合上使用Join子句
我有以下表格:
表1
idTable1 myDataTable1
表2
idTable2 myDataTable2 #idTable1 #idTable3
表3
idTable3 myDataTable3
我需要有以下要求的SQL的等效:
SELECT * FROM table1 t1
INNER JOIN table2 t2
WHERE t1.idTable1 = t2.idTable1
and t2.idTable3 = 4;
我試圖用這樣的EntityFramework要做到這一點,但它不工作:
List<table1> l = context.table1.Where(tab => (tab.table2.idTable3 == 4)).ToList<table1>();
的問題是, 「table2」是一個EntityCollection,我需要選擇一個帶有「ElementAt」來調用「idTable3」,但我想在所有table2元素中搜索...
你有什麼想法嗎?
問候
編輯: 目前,我用下面的Linq查詢,但如果你有一些想法...
from t1 in context.table1 from t2 in t1.table2 where t2.table3.idTable3 == 4 select t1
你的查詢看起來不錯。你有什麼異常或意外的結果?順便說一句,在末尾傳遞一個類型到ToList函數是不必要的。 – 2013-02-21 10:03:55
我沒有例外,因爲我無法建立我的項目。當我鍵入「tab.table2」時,table2是一個EntityCollection。自動完成不會提出我的實體「table2」的任何屬性。 – 2013-02-21 10:12:37
讓我直說吧。你的'table1'對象上的'table2'屬性是一個集合? – 2013-02-21 10:18:14