簡體   English   中英

當表為空時,實體框架包含相關表

[英]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不是DataSetDataTable ,而是類。

我認為如果您使用.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM