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() 方法获取您已有的模型并将其附加到上下文中,就好像它刚刚从数据库中读取一样。您只需更改状态,以便上下文知道在调用 SaveChanges() 时更新数据库中的相应行。

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 回答