当我更新我的模型时,我也尝试更新一个子关系错误。
我的模型,说 Order 与 OrderItem 有关系。在我看来,我有订单的详细信息以及订单项的编辑器模板。当我更新数据时,指向 Order 的链接为空,但 orderid 已填充,因此它应该能够链接它, TryUpdateModel 返回 true,但保存失败并显示:
InvalidOperationException:操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。]
我的更新方法:
public ActionResult ChangeOrder(Order model)
{
var order = this.orderRepository.GetOrder(model.OrderId);
if (ModelState.IsValid)
{
var success = this.TryUpdateModel(order);
}
this.orderRepository.Save();
return this.View(order);
}
我尝试了我在 SO 和其他来源上看到的所有解决方案,但没有一个成功。
我将 .Net MVC 3、EF 4.3.1 与 DBContext 一起使用。