将多个产品添加到同一个订单表中。 (M-M关系)

时间:2016-12-18 04:26:34

标签: c# sql-server asp.net-mvc

做一个商店项目。结帐时,我会从购物车创建一个所有添加产品的列表,并将其放在Order.Products内(M-M关系):

List<Product> productList = Cart.Select(item => db.Products.SingleOrDefault(x => x.Id == item)).ToList();                        

                    var addOrder = new Order
                    {
                        Id = Guid.NewGuid(),
                        UserId = userId,                                             
                        OrderDate = DateTime.Now,
                        Products = productList
                    };

                    db.Orders.Add(addOrder);
                    db.SaveChanges();

我调试了我的代码以确保productsList具有正确的数量。 但是在我添加之后,我只在我的数据库中添加了一个添加的产品。对于例如如果我有3x汽车,4x书籍和2x船,那么我只需要将其中一个放入M-M表中,这意味着共有3个产品,即使我在productList中共有9个。

这就是我建立m-m关系的方式。

create table Product_Order (

    ProductId uniqueidentifier foreign key references [Product](ID) not null,
    OrderId uniqueidentifier foreign key references [Order](Id) not null
)

顺便说一句,是否可以在Product_Order所谓的AmountProduct中添加其他列,并设置金额值而不是制作相同产品/订单的多行?如果可能,如何在var addOrder = new Order{内设置金额值?这样可能会更有效。

0 个答案:

没有答案