Пример #1
0
        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);
        }
Пример #2
0
 public bool SyncCart(CartBag cartBag)
 {
     return(Db.SyncCart(cartBag));
 }