Я не могу использовать WithMany для соединения многие ко многим.Я перепробовал все, и я не представляю, в чем проблема.Пожалуйста, помогите, если у вас есть некоторый опыт по этому поводу.
У меня есть две модели "Drink" и "DrinkCategory".у каждого напитка может быть много категорий, поэтому мне нужно соотношение «многие ко многим».
Вот первая модель «Напиток»:
public class Drink
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
[Required]
public int DrinkId { get; set; }
[Required]
public int DrinkIngredientId { get; set; }
public string DrinkName { get; set; }
public virtual DrinkIngredient DrinkIngredients { get; set; }
public virtual ICollection<DrinkCategory> DrinkCategories { get; set; }
}
Это вторая модель «DrinkCategorie»:
public class DrinkCategory
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
[Required]
public int DrinkCategoryId { get; set; }
public string DrinkCategoryName { get; set; }
public int? ParentDrinkCategoryId { get; set; }
public virtual ICollection<Drink> Drinks { get; set; }
}
Вот мой DBContext:
public class EatAndDrinkDbContext : DbContext
{
public EatAndDrinkDbContext(DbContextOptions<EatAndDrinkDbContext> options) : base(options) { }
public EatAndDrinkDbContext() { }
public DbSet<Drink> Drinks { get; set; }
public DbSet<DrinkCategory> DrinkCategories { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Drink>()
.HasMany(c => c.DrinkCategories)
.WithMany(i => i.Drinks)
.Map(t => t.MapLeftKey("DrinkId")
.MapRightKey("DrinkCategoryId")
.ToTable("DrinkDrinkCategory"));
base.OnModelCreating(modelBuilder);
}
}