具有相同实体实体框架的多对多

时间:2014-08-13 12:29:47

标签: c# entity-framework

我的数据库中有一个奇怪的关系。

基本上它是连接到相同类型实体的实体。

我拥有的是:

型号:

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很好地解决这个问题,或者我错过了一些关键的东西?

谢谢, 罗宾多尔贝尔

0 个答案:

没有答案