Два один ко многим ассоциации на LinkTable - PullRequest
1 голос
/ 29 ноября 2011

У меня есть LinkTable с именем: 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);
    }
}

1 Ответ

0 голосов
/ 29 ноября 2011

Да.Единственный вопрос, который остается для меня: как насчет свойства первичного ключа 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) должны быть уникальными.Это скорее отношение «многие ко многим» с дополнительными данными в таблице ссылок ».

Возможны обе модели.Какой из них использовать, зависит от потребностей вашего бизнеса.

...