【发布时间】:2019-07-12 10:15:05
【问题描述】:
我在订购相同的比萨时遇到问题。在代码中,当我调试时一切正常,但在数据库中我无法添加相同的比萨,而数据库仅添加 1 个相同的比萨。
我的订单类:
public class Order
{
public Order()
{
Sauces = new List<Sauce>();
Pizzas = new List<Pizza>();
}
public int OrderId { get; set; }
public virtual ICollection<Sauce> Sauces { get; set; }
public virtual ICollection<Pizza> Pizzas { get; set; }
}
我有一个方法:
var newOrder = new Order();
var listsauces = new List<Sauce>();
listsauces.Add(ctx.Sauces.Where(x => x.Id == 3).FirstOrDefault());
listsauces.Add(ctx.Sauces.Where(x => x.Id == 3).FirstOrDefault());
newOrder.Sauces = listsauces;
var listPizzas = new List<Pizza>();
listPizzas.Add(ctx.Pizzas.Where(x => x.Id == 1).FirstOrDefault());
listPizzas.Add(ctx.Pizzas.Where(x => x.Id == 2).FirstOrDefault());
listPizzas.Add(ctx.Pizzas.Where(x => x.Id == 1).FirstOrDefault());
newOrder.Pizzas = listPizzas;
ctx.Orders.Add(newOrder);
ctx.SaveChanges();
和ofc数据库显示
如何将相同的披萨添加到相同的订单中?
【问题讨论】:
-
发生这种情况是因为您使用的是 N x N 关系。您需要创建一个包含 Order、Pizza 和 Quantity 成员的新实体。
-
你的设计理念有问题
-
@TanvirArjel 如何更正这个数据库的模型?
标签: c# entity-framework code-first