我正在尝试使用从 UI 发送的对象(即订单)更新实体订单。
我的方法中有以下内容
Order neworder = new Order
{
ID = order.ID,
FirstName = order.FirstName,
LastName = order.LastName,
};
_bentities.Order.ApplyCurrentValues(neworder);
_bentities.SaveChanges();
如果我填写实体 Order 的所有不可为空的值,这将正常工作。但是我只有很少的属性被修改。我只想更新这些修改后的属性(不是所有未修改的不可为空的值)
我该怎么做?
我已阅读我可以将修改后的属性设置为:
var entry = _bentities.ObjectStateManager.GetObjectStateEntry(((IEntityWithKey)neworder).EntityKey);
entry.SetModifiedProperty("FirstName");
entry.SetModifiedProperty("LastName");
但是,由于某种原因,这不起作用。我收到一个异常,即 EntityKey 不能为空。如何为 neworder 设置 entitykey,然后这会起作用吗?