的實體框架負荷特性,我有以下結構:兒童
public class A{}
public Class B:A
{
public virtual C { get; set;}
}
public Class C{}
public Class Context:DbContext
{
public DbSet<A> As { get; set; }
public DbSet<C> Cs { get; set; }
}
當我想要加載任何物體b
,這個對象的屬性C
爲null。在數據庫中,C列在表格中有一個用於A
的ID。其他int
或string
屬性可以毫無問題地加載。
using(var ctx = new Context())
{
B b = ctx.As.FirstOrDefault() as B;
}
我可以使用延遲加載來解決這個問題嗎?使用急切加載我有一個問題,包括屬性B
,因爲我有一個列表List<A> someAs
其中一些項目是從B
類型。
我試着讓這個例子儘可能簡單。請告訴我提供更多信息。
啊完美。我認爲這將做到我想要的。我明天會試試這個,告訴你它是否有效。一個問題:爲什麼在這種情況下延遲加載不起作用? – jasdefer 2014-12-07 21:05:24
哦,如果您將'A'轉換爲'B',延遲加載也可以工作,但IMO預先加載是首選方法。 – 2014-12-07 21:09:16
它的工作原理。非常感謝你。我無法使用延遲加載工作。我不想使用它,但我很好奇。我應該如何將'A'投給'B'。我試過:'a a = ctx.As.FirstOrDefault();'然後'B b =(B)a',但是這不起作用。 – jasdefer 2014-12-08 06:19:58