假设在Entity Framework 4.3中创建了以下模型: http://www.dumpyourphoto.com/files4/122585/bI2uq9a.png
我们有:
这是出错的地方:从此模型生成数据库时,实体框架会弹出以下错误消息:
http://www.dumpyourphoto.com/files4/122586/bgOPaZwqL.png
翻译错误消息说:
"End Company on relationship Model1.Store.CompanyLocation cannot have operation specified since its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'."
经过调查,我们注意到这确实似乎不可能,因为Entity框架生成以下数据库(没有级联删除): http://www.dumpyourphoto.com/files4/122587/rx0g1G.png
实际上无法进行级联删除,因为实体框架有点作弊,它只生成1个外键,同时在其实体中保留两个导航属性。
这是完全合理且正确的数据库方式,但它会给我们带来麻烦。我们需要这种级联删除,但也需要0..1关系,因为数据库中的其他对象以与公司相同的方式使用位置实体。有没有人有这方面的解决方案,或有关如何解决这个问题的建议?