EF 4.1单个类中有多个对多关系
我有一个具有多个多对多关系的类,它们映射到同一辅助类。我的EquipmentSet类具有两个Equipment对象数组,而Equipment类还具有一个EquipmentSets数组,以确定设备属于哪个集合。
EF仅为第二个“多对多”关系生成一个查询表。如何告诉EF为两者生成查找表?使用下面的代码时,仅生成表\“ ModelSpecificEquipment \”。表“ GlobalEquipment”永远不会生成。
public partial class EquipmentSet
{
public int Id { get; set; }
public List<Equipment> Global { get; protected set; }
public List<Equipment> ModelSpecific { get; protected set; }
public EquipmentSet()
{
Global = new List<Equipment>();
ModelSpecific = new List<Equipment>();
}
}
public partial class Equipment
{
public int Id { get; set; }
public List<EquipmentSet> EquipmentSets { get; set; }
public Equipment()
{
}
}
public class DataContext : DbContext
{
public DbSet<Equipment> Equipment { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Equipment>()
.HasMany<EquipmentSet>(x => x.EquipmentSets)
.WithMany(x => x.Global)
.Map(x =>
{
x.MapLeftKey(\"EquipmentId\");
x.MapRightKey(\"EquipmentSetId\");
x.ToTable(\"GlobalEquipment\");
});
modelBuilder.Entity<Equipment>()
.HasMany<EquipmentSet>(x => x.EquipmentSets)
.WithMany(x => x.ModelSpecific)
.Map(x =>
{
x.MapLeftKey(\"EquipmentId\");
x.MapRightKey(\"EquipmentSetId\");
x.ToTable(\"ModelSpecificEquipment\");
});
base.OnModelCreating(modelBuilder);
}
}
同样,此时EF创建的数据库仅包含3个表:EquipmentSets,Equipments,ModelSpecificEquipments。 GlobalEquipments丢失。
没有找到相关结果
已邀请:
1 个回复
博沮富教全
只是一个只读的帮助程序,未映射到数据库。 然后,您可以在
和
之间创建多对多关系,并在
和
之间创建另一个多对多关系。