0
我在CartItems表以下記錄:合併兩個記錄到一個和更新列
當我遷移的車,我想這兩個記錄與車合二爲一Test1的的ID,然後更新量2
因此,這將是CartItemId 84,CartId測試1,數量2,dateCreated會2013年5月21日,16產品編號
我怎麼會在LINQ/EF做到這一點?
編輯
public void MigrateCart(string userName)
{
ShoppingCartId = GetCartId();
var shoppingCart = _context.ShoppingCartItems.Where(c => c.CartId == ShoppingCartId);
foreach (var item in shoppingCart)
{
item.CartId = userName;
}
_context.SaveChanges();
}
編輯
我想我擁有它。
public void MigrateCart(string userName)
{
ShoppingCartId = GetCartId();
if (ShoppingCartId != userName)
{
var shoppingCart = _context.ShoppingCartItems.Where(c => c.CartId == ShoppingCartId).ToList();
var userShoppingCartItems = _context.ShoppingCartItems.Where(c => c.CartId == userName).ToList();
foreach (var item in shoppingCart)
{
foreach (var userShoppingCartItem in userShoppingCartItems)
{
if (item.ProductId == userShoppingCartItem.ProductId)
{
item.Quantity += userShoppingCartItem.Quantity;
item.CartId = userName;
_context.ShoppingCartItems.Remove(userShoppingCartItem);
}
}
item.CartId = userName;
}
_context.SaveChanges();
}
else
{
var shoppingCart = _context.ShoppingCartItems.Where(c => c.CartId == ShoppingCartId);
foreach (var item in shoppingCart)
{
item.CartId = userName;
}
_context.SaveChanges();
}
}
我已更新我的問題以包含MigrateCart代碼。我的想法是提取已經分配給用戶名的購物車物品清單,所以我有兩個清單,一個是基於購物車ID,一個是基於用戶名。 – Mike
@Mike對不起,但我不清楚...你想合併所有cartId的CartId「Test1」(用戶名)與cartId的「19af129b ...」的? GetCartId是做什麼的?你想刪除cartItem 85,對吧? –
我想我有。我用代碼更新了問題。 – Mike