1

我正在尝试将购物车记录添加到 DbConext 类型的类 ProjectConext 中。问题是,当我添加记录并尝试保存它时,我收到 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.Cart 应该是 MVCProject.Model.Cart 。如果有人知道为什么没有正确添加记录,我们将不胜感激。提前致谢。

4

1 回答 1

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; }
}

解决了这个问题。

于 2013-01-31T14:13:58.013 回答