![](/img/trans.png)
[英]Code first Entity Framework (EF6) Adding Many-to-Many relationship after initial create
[英]How to configure many-to-many entity framework relationship, but to same object? EF6
我有课,像这样
public MyObject {
public long Id { get; set; }
public string Name {get; set; }
}
我想在此类和另一个相同类型的对象之间建立链接。 所以我需要另一个对象来处理多对多关系,这很好,像这样
public MyRelationship {
public long Id { get; set; }
public string Name { get; set; }
}
但是我如何配置其余的。 我在网上尝试过示例,但它们实在太不同了。
我已经尝试将导航属性添加到MyRelationship中以供链接使用,如下所示
public MyRelationship {
public long Id { get; set; }
public string Name { get; set; }
public MyObject Parent { get; set; }
public MyObject Child { get; set; }
}
还有MyObject的2个集合,像这样
public MyObject {
public long Id { get; set; }
public string Name {get; set; }
public virtual ICollection<MyRelationship> ParentRelationships { get; set; }
public virtual ICollection<MyRelationship> ChildRelationships { get; set; }
}
然后在我的配置文件中添加了
// relationships
this.HasMany(e => e.ParentRelationships)
.WithRequired(e => e.Parent)
.HasForeignKey(e => e.ParentId)
.WillCascadeOnDelete(false);
this.HasMany(e => e.ChildRelationships)
.WithRequired(e => e.Child)
.HasForeignKey(e => e.ChildId)
.WillCascadeOnDelete(false);
但是我得到这样的错误
在类型“ MyObject”上声明的导航属性“ ChildRelationships”已配置有冲突的外键。
你为什么不这样做呢?
public MyObject{
public long Id { get; set; }
public string Name { get; set; }
public ICollection<MyObject> Parents { get; set; }
public ICollection<MyObject> Children { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.