我正在开发一个实体框架代码优先项目,该项目具有相当复杂的数据模型,在 SQL Server 2008 上部署得非常好。
但是,在为某些本地端到端测试创建 SQL Server CE 数据库时,我在 EF 创建数据库时收到以下错误消息:
System.Data.SqlServerCe.SqlCeException: The referential relationship will result in a cyclical reference that is not allowed. [ Constraint name = FK_Sites_Persons_PersonId ].
我ManyToManyCascadeDeleteConvention
在我的 DataContext 模型创建方法中禁用了,所以这不是问题的原因。我遇到的问题是,有问题的关系在 SQL Server 2008 数据库中看起来很好——据我所知,它似乎是一个普通的外键,我看不到任何东西朝另一个方向回流,尽管它不是不可能有更长路径的循环引用。我不知道为什么 CE 会失败而 2008 年会成功。