私は EF5 (Code 1st) を使用しており、すべての構成を Fluent API で行っています。私のモデルは次のようになります。
public class AddressType
{
public int AddressTypeID { get; set; }
public string Name { get; set; }
}
public class Address
{
public int AddressID { get; set; }
public int StateID { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string PostalCode { get; set; }
public State State { get; set; }
public ICollection<Person> People { get; set; }
}
public class Person
{
public int PersonID { get; set; }
public string Name { get; set; }
public ICollection<Address> Addresses { get; set; }
}
私のデータベースには、上記のクラスのテーブル + 以下の Many:Many テーブルが含まれています。
Person.Person2Address
(
PersonID INT NOT NULL,
AddressID INT NOT NULL,
AddressTypeID INT NOT NULL,
)
上記の 3 つのフィールドはすべて外部キーであり、3 つが一緒になってテーブルの主キーを構成します。
通常、私の M:M セットアップでは、PK に 2 つのフィールドのみが含まれます。そして、私はそれを次のようにマッピングします:
var addressCfg = mb.Entity<Address>();
addressCfg.ToTable("Address", "Geo");
addressCfg.HasMany(a => a.People)
.WithMany(p => p.Addresses)
.Map(mmc =>
{
mmc.ToTable("Person2Address", "Person");
mmc.MapLeftKey("AddressID");
mmc.MapRightKey("PersonID");
});
しかし、PK でこの 3 番目のフィールドを構成する方法や、この場合、EF で CRUD がどのように機能するかはわかりません。
これがどのように処理されるべきかの例は大歓迎です。