做一个商店项目。结帐时,我会从购物车创建一个所有添加产品的列表,并将其放在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{
内设置金额值?这样可能会更有效。