动机:我的EF4.1 DbContext以错误的顺序保存实体
原因:我的模型缺乏导航属性
我想如何解决它:
我想在DbContext中设置外键关系。问题是我的实体对象没有导航属性(我用它来填充Web服务,然后将DTO对象发送到我的应用程序)。
下面的课程就是一个例子。在MinorClass中,我想配置我的上下文,以便它知道MajorClassID是一个外键。我在互联网上发现的关于如何明确定义外键的文章涉及使用我的对象没有的导航属性。
有没有办法映射这种关系?
public class MinorClass
{
public Guid ID {get;set:}
public Guid MajorClassID {get;set;} // foreign key
public string Name {get;set;}
}
public class MajorClass
{
public Guid ID {get;set;}
public string Name {get;set;}
}
答案 0 :(得分:5)
导航属性是主要构造,而外键是帮助程序(imho错误的帮助程序)。 EF通过由导航属性定义的关系识别DB命令的排序。您不能仅通过外键来定义关系。您至少需要在关系的一侧使用导航属性。