与代码中的其他字段相关的多对多关系

时间:2013-04-14 05:02:23

标签: c# entity-framework entity-framework-5 code-first

我有这个实体:

public class Content
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Test { get; set; }
    public DateTime Date { get; set; }
}

我希望与代码优先创建自己的多对多关系,如下图所示:

enter image description here

我该怎么做?

1 个答案:

答案 0 :(得分:2)

我认为您需要以下内容:

public class Content
{
    public int Id { get; set; }
    public ICollection<ContentLink> OtherContents { get; set; }
}

public class ContentLink
{
    public int Id { get; set; }
    public Content Lhs{ get; set; }
    public Content Rhs{ get; set; }
    //other stuff
}

modelBuilder.Entity<Content>().
    HasMany(c => c.OtherContents).WithRequired(c=>c.Lhs);
modelBuilder.Entity<ContentLink>().
    HasRequired(c => c.Rhs).WithMany();

注意:以上内容仅允许您遍历此实体链接的资源,而不是其他链接到您的实体

点击此处关于导航属性的帖子了解详情:http://blog.staticvoid.co.nz/2012/7/17/entity_framework-navigation_property_basics_with_code_first