在我的数据库模型中,我有4个实体:订单,服务,客户,员工。 他们的关系:
客户0..1 - *订单
订单1 - *服务
员工1 - *服务。
我尝试删除特定订单中的所有服务,但是我收到InvalidOperationException: 操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为foreign-key属性分配另一个非空值,或者必须删除不相关的对象。
这是我的代码:
public static void ClearSevicesInOrder(int orderId)
{
using (DbEntities context = new DbEntities())
{
var o = context.Orders.Find(orderId);
o.Services.Clear();
context.SaveChanges();
}
}
我做错了什么?
答案 0 :(得分:0)
我做了一篇关于此的博客文章,并提供了一个可能的解决方案。 http://wimpool.nl/blog/DotNet/extending-entity-framework-4-with-parentvalidator
简而言之:要使其工作,您必须删除服务列表中的每项服务