私は 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 がどのように機能するかはわかりません。
これがどのように処理されるべきかの例は大歓迎です。