c# - ef核心脚手架外键冲突

标签 c# entity-framework-core

无法将外键 {'ClassExtId'} 添加到实体类型“ClassInt”,因为实体类型“Instrument”上已存在相同属性的外键,并且还针对“ClassExt”上的键 {'ClassExtId'} '.

假设我有 ClassFoo 和 ClassBar 继承自 ClassInt。它们中的每一个都具有对同一列 ClassExtId 的引用。为什么 Entity Framework 核心脚手架(v3)会提示?

最佳答案

我的情况有所不同,但当我尝试构建现有的旧数据库时,我也遇到了相同的错误。我发布这个答案只是为了防止有人也和我遇到同样的问题。

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

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

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

  3. 转到您的表格 > 将其展开并转到。删除那里的重复键: enter image description here

  4. 运行您的 dotnet ef dbcontextscaffold 命令,祝你好运!

关于c# - ef核心脚手架外键冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58392011/

相关文章:

c# - 如何将数据从 JavaScript 传递到后面的 ASP.NET 代码中?

c# - 带有 DisableRequestSizeLimit 的 ASP.NET Core 测试方法

c# - 监控任务

c# - 可为空的引用类型和构造函数警告

c# - ef core fluent api 设置接口(interface)的所有列类型

c# - 在 Entity Framework Core 中使用动态过滤器

c# - 将应用程序作为 Windows 服务运行时程序集文件加载错误

c# - 具有不同大小子循环的大 O 分析

c# - Entity Framework : Introducing FOREIGN KEY constraint '' on table '' may cause cycles or multiple cascade paths

c# - TextReader.ReadLine() 无法读取整行