1

在我的数据库模型中,我有 4 个实体:订单、服务、客户、员工。他们的关系:

客户 0..1 - * 订单

订单 1 - * 服务

员工 1 - * 服务。

我尝试按特定顺序删除所有服务,但收到 InvalidOperationException: 操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。

这是我的代码:

        public static void ClearSevicesInOrder(int orderId)
        {
            using (DbEntities context = new DbEntities())
            {
                var o = context.Orders.Find(orderId);
                o.Services.Clear();
                context.SaveChanges();
            }
        }

我做错了什么?

4

1 回答 1

0

我写了一篇关于这个的博客文章,并提供了一个可能的解决方案。 http://wimpool.nl/blog/DotNet/extending-entity-framework-4-with-parentvalidator

简而言之:要使其正常工作,您必须删除服务列表中的所有服务

于 2013-04-13T10:43:15.180 回答