0
我已經被稱爲「購物車」的表格,其中有2個值的複合鍵:生成唯一的ID(實體框架)
public class Cart
{
[Column(Order=0), Key]
public int Id { get; set; }
[Column(Order=1), Key]
public int ProductId { get; set; }
public int Quantity { get; set; }
}
所以,如「購物車」的相同ids
可以有不同的ProductIds
(一個購物車上有不同的產品)。由於這個Cart Id
列不是唯一的,我不能使用DatabaseGeneratedOption.Identity
屬性來要求EF創建唯一的ID。
當我將新購物車實體插入數據庫並重復購物車中的產品時,是否可以要求EF僅生成一次新的唯一標識並返回服務器?
int unqiueId = ??(dbcontext.Generate Unique ID For This Table)
foreach (var cartLine in cart.CartLines)
{
Cart cartLinePurchased = new Cart{
Id = uniqueId,
ProductId=cartLine.Product.Id,
Quantity=cartLine.Quantity
};
dbcontext.CartPurchased.Add(cartLinePurchased);
dbcontext.SaveChanges();
cartPurchased = cartLinePurchased;
}
在此先感謝。
具有相同'Id'的多行有什麼作用? –
同一個Id表示同一個Cart。一個購物車(一個唯一的ID)與其上的不同產品。例如Id = 1的購物車上有1,2,3,4,5個產品ID; Id = 2的購物車,上面有3,5,7,8個產品ID;這就是爲什麼我創建了複合鍵。 –
如何使用Guid代替?或者有一個單獨的購物車表,這將負責給你這些獨特的數字? –