1

タイプDbConextのクラスProjectConextにCartレコードを追加しようとしています。問題は、レコードを追加して保存しようとすると、null以外の値を挿入しているのに、CustomerIDフィールドをnullにできない(できない)というエラーが表示されることです。それのための。モデルのコードは次のとおりです。

    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であることがわかります。これがレコードを正しく追加しない理由を誰かが知っている場合は、あなたの助けをいただければ幸いです。前もって感謝します。

4

1 に答える 1

1

答えが見つかりました。問題は、CustomerID が Cart テーブルの ID 列であるため、既存の値を消去する値を自動的に挿入しようとしていたことです。コードの追加: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 に答える