Вопрос

У меня есть 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) Должно быть уникальным. Это скорее "Многие отношения с дополнительными данными в таблице ссылок"Тип отношений.

Обе модели возможны. Что использовать, зависит от потребностей вашего бизнеса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top