Entity Framework でマッピングの課題があります。
データベースでは、次のように両方の PK を持つ中間テーブルを持つ 2 つのテーブル間に多対多の関係があります。
次のように、この関係を 1 対多のドメイン エンティティの関係にマップする必要があります。
Fluent API を使用してこれをマップするにはどうすればよいですか?
Entity Framework でマッピングの課題があります。
データベースでは、次のように両方の PK を持つ中間テーブルを持つ 2 つのテーブル間に多対多の関係があります。
次のように、この関係を 1 対多のドメイン エンティティの関係にマップする必要があります。
Fluent API を使用してこれをマップするにはどうすればよいですか?
ナビゲーション プロパティを使用して、モデルに 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");
});
}
}