Код EF 4.2 Первый.Как назвать таблицу «многие ко многим»? - PullRequest
4 голосов
/ 12 января 2012

Можно ли указать имя таблицы в отношении многие ко многим?

Пример:

class A
{
    public int Id { get; set; }
    // .....

    public virtual ICollection<B> BCollection { get; set; }
}

class B
{
    public int Id { get; set; }
    // .....

    public virtual ICollection<A> ACollection { get; set; }
}

Я думал, что это может сработать, но, очевидно, это не так.

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<A>().HasMany(x => x.BCollection).WithMany(y => y.ACollection).Map(m => m.ToTable("My_Custom_Name"));
}

1 Ответ

12 голосов
/ 12 января 2012

Попробуйте также сопоставить имена столбцов.

        modelBuilder.Entity<A>()
        .HasMany(x => x.BCollection).WithMany(y => y.ACollection)
            .Map(m =>
            {
                m.ToTable("My_Custom_Name");
                m.MapLeftKey("AId");
                m.MapRightKey("BId");
            });
...