添加Cascade Delete后无法生成SSDL

时间:2014-06-04 09:48:17

标签: c# entity-framework entity-framework-6

我正在尝试模拟(与设计师)这种情况: 我有一个 客户端 (摘要)和两个派生实体:私有公开。 此外,我还有地址订单实体。 Private 具有 1“永久地址”属性,Public,具有 1“注册地址”属性。 我模仿了这个:

  

私人(0..1) - >(1)地址和公开(0..1) - >(1)地址

现在,每个客户端都可以拥有更多订单。 1订单 一个送货地址:

  

客户端(1) - >(*)订单
  订单(0..1) - >(1)的地址

所有地址都定义为导航属性。

如果我现在构建模型,它可以工作,但是当我从上下文中删除客户端时,在我的地址表中保留地址。 所以我尝试为每个到地址实体的连接添加一个END1级联删除。

在构建时,我会收到此错误,以确定地址相关实体之间的连接:

  

由名为'CsdlToSsdlAndMslActivity'的活动生成的SSDL无效,并且有以下错误:
  关系'{1}'上的结束'{0}'不能指定操作,因为它的多重性是'*'。不能在具有多重性'*'的末尾指定操作。

怎么了?

1 个答案:

答案 0 :(得分:0)

删除聚合实体时,无法在删除时级联。确保将Cascade放在正确的一端,即结尾代表父/拥有实体。

在您的情况下,我会尝试将Cascade放在End2上。