1
我有一個具有多個多對多關係映射到同一個輔助類的類。我的EquipmentSet類有兩個Equipment對象陣列,Equipment類也有一個EquipmentSets陣列來確定設備屬於哪一組。EF 4.1單個類中的多個多對多關係
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,設備,ModelSpecificEquipments。 GlobalEquipments缺失。
確定有趣。這給了我一些玩的東西..我會給它一個鏡頭。 – djmc 2011-05-27 19:13:27