2

Entity Framework でマッピングの課題があります。

データベースでは、次のように両方の PK を持つ中間テーブルを持つ 2 つのテーブル間に多対多の関係があります。

従属中間テーブルを使用した多対多

次のように、この関係を 1 対多のドメイン エンティティの関係にマップする必要があります。

一対多のエンティティ関係

Fluent API を使用してこれをマップするにはどうすればよいですか?

4

1 に答える 1

1

ナビゲーション プロパティを使用して、モデルに Dependents テーブルを設定できます。

public class Title
{
    public int Id { get; set; }

    public string Name { get; set; }

    public virtual ICollection<Person> Dependents { get; set; }
}

public class Person
{
    public int Id { get; set; }

    public string Name { get; set; }
}

public class MyContext : DbContext
{
    public DbSet<Title> Titles { get; set; }
    public DbSet<Person> People { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<Title>()
            .HasMany<Person>(t => t.Dependents)
            .WithMany()
            .Map(d =>
            {
                d.MapLeftKey("Title_Id");
                d.MapRightKey("Person_Id");
                d.ToTable("Dependents");
            });
    }
}
于 2015-03-16T18:58:15.920 に答える