对于我所有的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