У меня есть класс с несколькими отношениями «многие ко многим», отображающими один и тот же вторичный класс.У моего класса EquipmentSet есть два массива объектов Equipment, а у класса Equipment также есть массив наборов Equipment, чтобы определить, в какие наборы входит оборудование.
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 отсутствует.