我有一个购物车,它可以有很多产品,而且一个产品可以在很多购物车中我想将产品添加到购物车,但我很困惑我应该怎么做?如果有人可以向我解释这是如何工作的,那么保存在 CartProduct
表中是正确的还是其他什么,因为我迷路了。
购物车类:
public class Cart
{
public int Id { get; set; }
public int ProductCount { get; set; }
public AppUser User { get; set; }
public List<CartProduct> CartProduct { get; set; }
}
产品类别:
public partial class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public string Category { get; set; }
public decimal CostToMake { get; set; }
public decimal FinalPrice { get; set; }
public int? OrderId { get; set; }
public int? CartId { get; set; }
public virtual Order Order { get; set; }
public List<CartProduct> CartProduct { get; set; }
}
CartProduct
类:
public class CartProduct
{
public int CartId { get; set; }
public int ProductId { get; set; }
public Cart Cart { get; set; }
public Product Product { get; set; }
}
汽车服务:
public class SqlCart : ISqlCart
{
private ManagerZContext _dbContext;
public SqlCart(ManagerZContext dbContext)
{
_dbContext = dbContext;
}
public Cart AddProductToCart(Product product, Cart cart)
{
List<CartProduct> cartList = _dbContext.CartProduct.Where(cp => cp.CartId == cart.Id).ToList();
cartList.Add(product);
cart.CartProduct =
cart.ProductCount = cartList.Count();
_dbContext.Attach(cart).State = EntityState.Modified;
_dbContext.SaveChanges();
return new Cart();
}
public Cart CreateCart(AppUser user)
{
Cart cart = new Cart();
cart.User = user;
_dbContext.Carts.Add(cart);
return new Cart();
}
public Cart GetCart(AppUser user)
{
Cart cart = _dbContext.Carts.Where(c => c.User == user).FirstOrDefault();
List<CartProduct> cartList = _dbContext.CartProduct.Where(cp => cp.CartId == cart.Id).ToList();
cart.CartProduct = cartList;
return cart;
}
}
我不知道如何在购物车服务中将产品添加到购物车?
答案 0 :(得分:1)
修改您的 AddProductToCart
方法,例如 -
public Cart AddProductToCart(Product product, Cart cart)
{
var newCartProduct = new CartProduct { Cart = cart, Product = product };
// OR
// var newCartProduct = new CartProduct { CartId = cart.Id, ProductId = product.Id };
_dbContext.CartProduct.Add(newCartProduct);
_dbContext.SaveChanges();
return cart;
}
您必须有带有 Id
和 product
参数的 cart
。