如果我有一組表,TableA,TableB,TableC和TableD與TableA與TableB,TableC和TableD有一對多的關係。實體框架 - 選擇帶或不帶關係
有時候我想返回整個TableA,TableB,TableC和TableD的集合。有時我只想返回TableA。
此刻,我有以下幾點:
TableA tableA;
if (includeRelationships)
{
tableA = (from a in context.TableAs
.Include("TableBs")
.Include("TableCs")
.Include("TableDs")
where a.Id = myId
select a).SingleOrDefault();
}
else
{
tableA = (from a in context.TableAs
where a.Id = myId
select a).SingleOrDefault();
}
// do stuff with tableA
這是做到這一點的唯一途徑?
編輯 - 澄清以下feanz的回答是:
所以它需要一個單一的數據庫調用這將公開爲WCF服務,或者所有表或單個表A,使懶/延遲加載是不是選項。
啊,大概應該補充說這是WCF服務的一部分,所以根據你鏈接到的文章,懶惰加載並不是一個真正的選項 – Shevek 2011-06-08 17:27:50
,你必須在引用訪問之前具體'.Load()' ,它不會自動完成。無論哪種方式,它仍然意味着多次訪問數據庫而不是一個,所以它不適合這個應用程序。 – Shevek 2011-06-08 21:20:08