我的数据库中有一个奇怪的关系。
基本上它是连接到相同类型实体的实体。
我拥有的是:
型号:
public class Article
{
-- Properties --
ICollection<Article> ConnectedArticles { get; set; }
}
Fluent API:
modelBuilder.Entity<Article>()
.HasMany(ca => ca.ConnectedArticles)
.WithMany(ca => ca.ConnectedArticles)
.Map(m =>
{
m.MapLeftKey("ArtNo");
m.MapRightKey("ArtNo");
m.ToTable("ConnectedArticles");
});
这不适用于Entity Framework并导致错误:The navigation property 'ConnectedArticles' declared on type 'ServiceSystem.Models.CommonArticle' cannot be the inverse of itself.
我可以通过创建一个包含相关文章的新模型来解决这个问题:
public class ConnectedArticle
{
public Article article1 { get; set; }
public Article article2 { get; set; }
}
但是我希望实体框架能够在它自己的基础上做到这一点,就像对多个实体一样多对多。
是否有可能使用Entity Framework很好地解决这个问题,或者我错过了一些关键的东西?
谢谢, 罗宾多尔贝尔