[英]Entity Framework Include related table when table is empty
我正在從數據庫讀取數據到gridview的數據源。 我的Table2可以為空。 當我嘗試從Table2綁定列時,出現了不包含該列的錯誤。 我檢查了來自查詢的數據。 有Table2但沒有列。 只是計數= 0。
即使表為空,如何獲取相關表的列?
return entities.Table1
.Include("Table2")
.Include("Table3 ")
.Include("Table2.Table4")
.Where(results => results.ID == anotherId)
.ToList();
Table1 one to many Table2
Table3 one to many Table1
Table4 one to many Table2
當您使用EF Table1,Table2等時,都是所有類。 Include(string)
方法用於在一個查詢中緩存相關記錄。 您可以刪除Include
語句,並且您的查詢將類似地工作。 因此,如果在Table1和Table2之間的數據庫中沒有任何實際記錄,則Table2屬性的count = 0。
將一些相關記錄添加到表1和表2的數據庫中,然后再次執行查詢。 Table2不是DataSet
或DataTable
,而是類。
我認為如果您使用.Include("Table2.Table4")
,則.Include("Table2")
事件是多余的
請注意,如果您想要一對多關系,則Table2應該具有Table1的FK。
EDITED
如果使用EF,則不必使用聯接從幾個表中收集數據。 但是您必須明確定義FK。 您只需使用var collction = table1.Table2
即可獲取與table1對象相關的所有Table2對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.