對於我所有的POCO,導航和收集屬性均爲空。代碼第一代自動代理類導航和收集屬性爲空
讓我提供一些背景知識。我有一個使用EF 4.3.1的複雜代碼第一個項目。代理生成已禁用。集合和導航屬性是手動管理的。
我現在啓用代理創建和延遲加載。在調試時,我可以看到我的實體(投射到我已知的POCO類型)現在實際上是一個自動生成的代理類。到現在爲止還挺好。
現在,當我查看我的導航屬性時,它們爲空。同樣,我的集合屬性爲空。
使用反射,我可以看到代理類HAS重寫了我的導航和集合屬性。
所有導航和收藏屬性都是虛擬的。 e.g:
public virtual NavigationType NavigationName { get; set; }
public virtual ICollection<CollectionType> CollectionName { get; set; }
此外,所有表被初始化爲這樣:
modelBuilder.Entity<TEntity>()
.Map(m =>
{
m.MapInheritedProperties();
m.ToTable("TableName");
});
我也可以證實,按預期的方式生成的數據庫。外鍵都存在,並與預期的字段相關聯。
爲什麼它們是空的?我如何進一步診斷?
偉大的問題。 – mattytommo 2013-04-22 15:44:20
這些集合屬性在你的班級中被標記爲「虛擬」嗎? – alex 2013-04-22 15:45:44
查看要求 - http://msdn.microsoft.com/en-gb/library/vstudio/dd468057(v=vs.100).aspx – devdigital 2013-04-22 15:47:12