.net 1到0..1实体框架中具有级联删除的关系

.net 1到0..1实体框架中具有级联删除的关系,.net,database,entity-framework,edmx,entity-model,.net,Database,Entity Framework,Edmx,Entity Model,假设在实体框架4.3中创建了以下模型: 我们有: 位置实体 有地点的公司 关系:位置包含0..1个公司。这种选择是必要的,因为在我们的设计中,位置实体将被更多的实体使用 级联删除:当公司被删除时,相应的位置也需要被删除 这就是问题所在:从该模型生成数据库时,Entity Framework弹出以下错误消息: 错误消息显示: “关系模型1.Store.CompanyLocation上的结束公司无法指定操作,因为其多重性为'*'。无法在多重性为'*'的结束公司上指定操作。” 在调查之后,我们

假设在实体框架4.3中创建了以下模型:

我们有:

  • 位置实体
  • 有地点的公司
  • 关系:位置包含0..1个公司。这种选择是必要的,因为在我们的设计中,位置实体将被更多的实体使用
  • 级联删除:当公司被删除时,相应的位置也需要被删除
这就是问题所在:从该模型生成数据库时,Entity Framework弹出以下错误消息:

错误消息显示:
“关系模型1.Store.CompanyLocation上的结束公司无法指定操作,因为其多重性为'*'。无法在多重性为'*'的结束公司上指定操作。”

在调查之后,我们注意到这似乎确实不可能,因为Entity framework生成以下数据库(没有级联删除):

级联删除确实无法进行,因为实体框架有点欺骗,它只生成1个外键,同时将两个导航属性保留在实体中

这在数据库方面是完全合理和正确的,但是它给我们带来了麻烦。我们需要这种级联删除,但也需要0..1关系,因为数据库中的其他对象以与company相同的方式使用location实体。是否有人对此有解决方案,或如何解决此问题的建议