我有一个名为的BlogTable:BlogsBlogPosts,它将两个名为:Blogs和BlogPosts的表联系在一起,我希望链接表出现在实体列表中,并且在链接表上定义了两个一对多的关系我正确像这样定义它?:
public class BlogsBlogPostConfiguration : EntityTypeConfiguration<BlogsBlogPost>
{
public BlogsBlogPostConfiguration()
{
this.HasRequired(bb => bb.Blog)
.WithMany(b => b.BlogsBlogPosts)
.HasForeignKey(bb =>bb.BlogID);
this.HasRequired(bb => bb.BlogPost)
.WithMany(bp => bp.BlogsBlogPosts)
.HasForeignKey(bb => bb.BlogPostID);
}
}
答案 0 :(得分:0)
是。对我而言,唯一的问题是:BlogsBlogPost
的主要关键属性是什么?两个选项:
您要么在此实体中拥有明确的关键属性,例如public int BlogsBlogPostID { get; set; }
或public int ID { get; set; }
。在这种情况下,(BlogID
,BlogPostID
)的组合不必是唯一的。
或者您有一个由(BlogID
,BlogPostID
)组成的复合键。您必须使用[Key]
注释对其进行标记,或者在Fluent API中对其进行定义:
this.HasKey(bbp => new { bbp.BlogID, bbp.BlogPostID });
现在(BlogID
,BlogPostID
)的组合必须是唯一的。这更像是“与链接表”类型关系中的其他数据的“多对多关系”。
两种型号都是可能的。使用哪种方法取决于您的业务需求。