我正在尝试将Cart记录添加到我的类ProjectConext中,该类是DbConext类型。问题是,当我添加记录并尝试保存它时,我得到的错误是CustomerID字段不能为空(它不能),即使我可以看到我插入一个非空值为了它。这是我的模型代码:
public class ShoppingCart
{
ProjectContext _db = new ProjectContext();
public void AddToCart(Video toAdd, Customer CurUser)
{
var CartItem = new Cart
{
CustomerID = CurUser.CustomerID,
Item = toAdd.Title,
Count = 1,
Price = 1.00
};
_db.Carts.Add(CartItem);
_db.SaveChanges();
}
}
我在Add()之后的行中插入了一个断点,我可以看到CartItem已经填充了所有字段,而_db.Carts应该是MVCProject.Model.Cart。如果有人知道为什么没有正确添加记录,那么您的帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
我找到了答案,问题是因为CustomerID是Cart表中的标识列,所以它试图自动插入一个擦除现有的值。添加代码:DatabaseGenerated(DatabaseGeneratedOption.None)
,如
public class Cart
{
[Key, Required, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CustomerID { get; set; }
public string Item { get; set; }
public int Count { get; set; }
public double Price { get; set; }
}
解决了这个问题。