public static bool SyncCart(this MyDbContext db, CartBag cartBag) { var idInCart = cartBag._cartItems.Select(a => a.SC_ID); //删除 var inDbNotInCart = db.shopping_cart.Where(a => !idInCart.Contains(a.SC_ID)); //添加 var inCartNotInDb = cartBag._cartItems.Where(a => !db.shopping_cart.Any(b => b.SC_ID.Contains(a.SC_ID))); //更新 var inCartAndInDb = db.shopping_cart.AsNoTracking().Where(a => idInCart.Contains(a.SC_ID)).ToList(); //同步到数据库 db.shopping_cart.RemoveRange(inDbNotInCart); db.shopping_cart.AddRange(inCartNotInDb); inCartAndInDb.ForEach(a => db.shopping_cart.AddOrUpdate(a)); return(db.SaveChanges() > 0); }
public bool SyncCart(CartBag cartBag) { return(Db.SyncCart(cartBag)); }