0

データベースからフェッチする必要がないように、このクエリを再構築できますか?いろいろなテクニックを試しましたが、どれもうまくいきません。

    public void Update(CartEntryViewModel entry)
        using (var context = new MyContext())
        {
            User user = Auth.GetUser(context);
            CartEntry model = context.CartEntries.Find(entry.Id);

            // Change the item and update quantity
            model.Item = context.Items.Find(entry.Item.Id);
            model.Quantity = entry.Quantity;
            context.Entries(model).EntityState = EntityState.Modified;

            context.SaveChanges();
        }
    }
4

1 に答える 1

0

Attach() メソッドは、既に持っているモデルを取得し、DB から読み取ったかのようにコンテキストにアタッチします。SaveChanges() が呼び出されたときにコンテキストが DB 内の対応する行を更新することを認識できるように、状態を変更するだけです。

public void Update(CartEntryViewModel entry)
{
    CartEntry model = new CartEntry
    {
        model.Id = entry.Id,
        model.Item = entry.Item,
        model.Quantity = entry.Quantity,
        // Set other properties.     
    };

    using (MyContext context = new MyContext())   
    {
        context.CartEntries.Attach(model);
        context.Entry(model).State = EntityState.Modified;
        context.SaveChanges();
    }
}
于 2013-02-13T17:09:03.307 に答える