我所有的POCO对象中,导航属性和集合属性都为null。
让我提供一些背景。我的项目使用EF 4.3.1,并且禁用了代理生成。手动管理集合和导航属性。
现在,我正在启用代理创建和延迟加载。调试时,我可以看到我的实体(转换为已知的POCO类型)现在实际上是一个自动生成的代理类。目前为止很好。
现在,当我查看导航属性时,它们为null。同样,我的集合属性也为null。
使用反射,我可以看到代理类覆盖了我的导航和集合属性。
所有导航和集合属性都是virtual的,例如:
public virtual NavigationType NavigationName { get; set; }
public virtual ICollection<CollectionType> CollectionName { get; set; }
另外,所有表都被初始化为以下内容:
modelBuilder.Entity<TEntity>()
.Map(m =>
{
m.MapInheritedProperties();
m.ToTable("TableName");
});
我也可以确认数据库已按预期生成。外键全部存在,并与预期字段相关联。
为什么它们为空?我如何进一步诊断这个问题?