【发布时间】:2017-03-21 05:15:01
【问题描述】:
我首先使用 EntityFramework 代码。可以说这是我的课程:
public abstract class BlockModel
{
public int Id { get; set; }
}
public class ModuleBlockModel : BlockModel
{
}
public abstract class BlockModelParameter
{
public int Id { get; set; }
public virtual BlockModel BlockModel { get; set; }
}
public class ModuleBlockModelParameter : BlockModelParameter
{
public new virtual ModuleBlockModel BlockModel { get; set; }
}
还有我的 DbContext 类:
public IDbSet<ModuleBlockModel> BlockModels { get; set; }
public IDbSet<ModuleBlockModelParameter> BlockModelParameters { get; set;}
当我尝试获取项目时,EF 创建另一个同名的属性。一个是空的,另一个是正确的。
并尝试获取 BlockModel 值抛出 null 值。
是否存在 EF 错误?如何正确获取 BlockModel 属性。
谢谢。
【问题讨论】:
-
您的问题是什么?请记住清楚地说明您想要的结果是什么,或者如果您只是想解释一下行为,那么您不清楚什么。
-
已编辑问题
-
显示你的 fetch 命令。你的 LINQ 中有 Include() 吗?
var myBlockModelParmWithBlockModel = context.BlockModelParameters.Include(bmp => bmp.BlockModel).FirstOrDefault(); -
@SteveGreene 是的。 var blockModelParameters = Db.BlockModelParameters.Include(x => x.BlockModel).ToList();
标签: entity-framework ef-code-first