我一直沒能找到別人這個問題,所以在這裏。EF代碼第一個相關實體根本不加載
我有一個簡單的模型,其中一個實體簡單地引用其他如父子或一個一對多的關係是這樣定義的:
public class Parent
{
public int ID { get; private set; }
public string Name { get; private set; }
}
public class Child
{
public int ID { get; private set; }
public string Name { get; private set; }
public virtual Parent Parent { get; private set; }
}
我創建每個speicific映射文件,其工作的偉大除相關實體外的所有常規屬性。它始終是空的。無論我是否擁有屬性上的虛擬/私人訪問器,它都不會加載,除非我先從上下文中單獨提取父級副本。我的映射如下所示:
HasRequired(t => t.Parent).WithMany().Map(t => t.MapKey("ParentID")).WillCascadeOnDelete();
有什麼我在做這個錯嗎?我不能爲我的生活弄清楚這一點。只是讓我涵蓋所有的基礎,我加載實體是這樣的:
Context.Set<Child>().FirstOrDefault(x => x.ID == 1);
而且最後這裏有一些限制,我有:
- 我不能在我的模型作爲屬性的外鍵。
- 我不能從父母那兒收集孩子。
爲我工作。孩子被查詢加載,child.Parent在第一次訪問時被懶惰地加載。 – 2012-04-29 05:11:12
爲什麼你有兩個班代表孩子和家長。因爲他們有相同的屬性 – 2012-04-29 05:27:53
@Jayantha也許這只是示例代碼... – 2012-04-29 10:10:44