我正在尝试(与设计师一起)模拟这种情况: 我有一个Client(抽象)和两个派生实体:Private 和Public。 此外,我还有一个Addresses 和一个Orders 实体。 私有(private)有 1 个“永久地址”属性,公共(public)有 1 个“注册地址”属性。 我这样建模:
Private(0..1)->(1)Addresses and Public(0..1)->(1)Addresses
现在,每个 客户可以有更多 订单。 1 订单有送货地址:
Client(1)->(*)Orders
Orders(0..1)->(1)Addresses
所有地址都定义为导航属性。
如果我现在构建模型,它可以工作,但是当我从上下文中删除客户端时,地址表中的地址仍然存在。 所以我尝试为地址实体的每个连接添加一个 END1 级联删除。
在构建时,我在地址相关实体之间引用连接时遇到此错误:
The SSDL generated by the activity called 'CsdlToSsdlAndMslActivity' is not valid and has the following errors:
End '{0}' on relationship '{1}' cannot have operation specified since its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'.
怎么了?
最佳答案
当聚合实体被删除时,您不能级联删除。确保将 Cascade
放在正确的一端,即 代表父/拥有 实体的一端。
在您的情况下,我会尝试将 Cascade
放在 End2
上。
关于c# - 添加Cascade Delete后无法生成SSDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24034150/