2012-10-20 64 views
1

還原虛擬構件爲了增強頁面的與大量的數據的請求的時間,我想使用Context.Database.SqlQuery方法,而是採用LINQ在SqlQuery類<>()

Context.Database.SqlQuery<Inschrijving>("select * from dbo.inschrijving join dbo.duif on dbo.duif.duifid = dbo.inschrijving.duifid where vluchtid = {0} and duivenmelker_duivenmelkerid = {1}",vluchtId, duivenmelker.DuivenmelkerId); 

這可行,但在我的班我使用虛擬成員。這些在sqlquery方法中爲null。

我嘗試了其他類型的連接,此刻我正在使用一種方法來恢復具有該ID的虛擬對象。

類與虛擬物體的片段:

[Key,ForeignKey("Duif"), Column(Order = 0)] 
public int DuifId { get; set; } 
public virtual Duif Duif { get; set; } 

我怎麼能恢復對象的虛擬成員(以更好的方式)?

有沒有辦法在sqlquery中一次完成這一切?

回答

0

我該如何恢復對象中的虛擬成員(以更好的方式)?

你不會。 SqlQuery只能加載頂級的類但不能關聯。您需要爲要加載每個類型執行不同的SqlQuery,你應該使用這個版本:

Context.Set<Inschrijving>().SqlQuery(....); 

那將使你的實體進行跟蹤。 EF將在單獨查詢加載時修復關係,或爲未加載的關係提供延遲加載。

+0

好的,謝謝你的清理 –

相關問題