我有一个名为: BlogsBlogPosts的LinkTable,它将另外两个名为:博客和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);
}
}发布于 2011-11-29 21:50:36
是。留给我的唯一问题是:BlogsBlogPost的主键属性是什么?有两个选项:
public int BlogsBlogPostID { get; set; }或public int ID { get; set; }。在这种情况下,(BlogID,BlogPostID)的组合不必是唯一的。BlogID,BlogPostID)组成的组合键。你必须用[Key]注解来标记它,或者在Fluent API中定义它:this.HasKey(bbp => this.HasKey{ bbp.BlogID,bbp.BlogPostID });
现在(BlogID,BlogPostID)的组合必须是唯一的。这更像是一种“在链接表中包含额外数据的多对多关系”类型的relationship.
这两种模型都是可能的。具体使用哪种方式取决于您的业务需求。
https://stackoverflow.com/questions/8311316
复制相似问题