外键冲突ef核心脚手架

时间:2019-10-15 09:59:03

标签: c# entity-framework-core

不能将外键{'ClassExtId'}添加到实体类型'ClassInt'中,因为在实体类型'Instrument'上已经存在相同属性的外键,并且还将对象定位在'ClassExt上的键{'ClassExtId'} '。

假设我有从ClassInt继承的ClassFoo和ClassBar。他们每个人都有对同一列ClassExtId的引用。为什么实体框架核心支架(v3)抱怨?

1 个答案:

答案 0 :(得分:3)

我的情况不同,但是当我尝试搭建现有的旧数据库时,我也遇到了相同的错误。我正在发布此答案,以防万一有人也遇到我同样的问题。

事实证明,在我的旧数据库中,某个表具有由以前的开发人员创建的如此多的重复外键。您可以在您的sql服务器中检查这一点(我使用sql server开发人员版2019)

  1. 在“对象资源管理器”中,右键单击将在 关系的外键一侧,然后单击“设计”。
    该表在表 Designer 中打开。

  2. 从“表设计器”菜单中,单击“ 关系”。您将看到为该表定义的所有外键,在我的情况下,是重复的applicationID。清理 : enter image description here

  3. 转到表格>展开表格,然后转到。删除那里的重复键: enter image description here

  4. 运行您的dotnet ef dbcontext scaffold命令,祝您好运!