Не удается использовать WithMany в Entity Framework Fluent API - PullRequest
0 голосов
/ 11 сентября 2018

Я не могу использовать 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);
    }

}

...