Я создал все свои сущности на основе учебника, и, похоже, он работает, по крайней мере, мои таблицы базы данных созданы, но я просто не могу понять, как вставить какие-либо новые данные со следующей настройкой:
Мои классы моделей:
public class Coffee
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CoffeeId { get; set; }
[MaxLength(100)]
[Required]
public string Name { get; set; }
[MaxLength(100)]
[Required]
public string ImagePath { get; set; }
[MaxLength(100)]
[Required]
public string Price { get; set; }
[MaxLength(400)]
[Required]
public string Description { get; set; }
public virtual ICollection<IngredientCoffees> Ingredients { get; set; }
}
public class Ingredient
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int IngredientId { get; set; }
[MaxLength(100)]
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)]
public string Name { get; set; }
[Required]
public int Amount { get; set; }
[Required]
[StringLength(10, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 1)]
public string Unit { get; set; }
public virtual ICollection<IngredientCoffees> Coffees { get; set; }
}
public class IngredientCoffees
{
public int Coffee_Id { get; set; }
public int Ingredient_Id { get; set; }
public virtual Coffee Coffee { get; set; }
public virtual Ingredient Ingredient { get; set; }
public int amount { get; set; }
}
И в методе OnModelCreating
моего DbContext
класса у меня есть это:
builder.Entity<IngredientCoffees>()
.HasKey(ic => new { ic.Coffee_Id, ic.Ingredient_Id });
builder.Entity<IngredientCoffees>()
.HasRequired(ic => ic.Coffee)
.WithMany(ic => ic.Ingredients)
.HasForeignKey(ic => ic.Coffee_Id);
builder.Entity<IngredientCoffees>()
.HasRequired(ic => ic.Ingredient)
.WithMany(ic => ic.Coffees)
.HasForeignKey(ic => ic.Ingredient_Id);
Все это приведет кследующая структура базы данных:
мои таблицы
Как вставить новый Coffee
с уже существующими компонентами в базу данных, чтобы они были объединены в моем IngredientCoffees
таблица, где я также хочу установить для них столбец «сумма»?