Два одного ко многим ассоциациям на Linktable
-
25-10-2019 - |
Вопрос
У меня есть Linktable с именем: blogsblogposts, которые связывают две другие таблицы с названием: блоги и блоги вместе, я хочу как это?:
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);
}
}
Решение
Да. Единственный вопрос, который остается для меня: как насчет основного свойства 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
) Должно быть уникальным. Это скорее "Многие отношения с дополнительными данными в таблице ссылок"Тип отношений.
Обе модели возможны. Что использовать, зависит от потребностей вашего бизнеса.