我正在使用 EF5(代码 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 中配置第三个字段,或者在这种情况下 CRUD 甚至在 EF 中如何工作。
任何应该如何处理的例子都将不胜感激。