1
想象我們有一個簡單的POCO爲EF 4.1 Codefirst:EF 4.1 Codefirst:實例複雜的導航性能
public class Product
{
// Native properties
[Key]
public Guid ID { get; set; }
// Navigation properties
public virtual Category Category { get; set; }
public virtual ICollection<Customer> Customers { get; set; }
public Product()
{
this.ID = Guid.NewGuid();
// Do I have to instantiate navigation properties in the constructor or not???
this.Category = new Category();
this.Customers = new List<Customer>();
}
}
我無法弄清楚到目前爲止我是否應該在POCO的構造函數實例化複雜的導航性能或不?
似乎我所有的當前代碼在工作,如果我沒有實例化,但我擔心我的代碼可能會在將來導致問題。
是否有任何規則,最佳實踐或任何副作用?
感謝您的想法和提示!
謝謝你的解釋,拉迪斯拉夫。 – Ingmar
如果我正確解釋您的答案,EF會自動用代理包裝所有相關實體?無論他們是單身還是單身? – Ingmar
EF使用動態代理來包裝實體。有一些基本規則必須遵循纔會發生:必須允許上下文(默認),必須允許延遲加載(默認),所有導航屬性必須是虛擬的。 –