【问题标题】:A column ID occurred more than once in the specification?一个列 ID 在规范中出现了不止一次?
【发布时间】:2011-08-10 16:19:52
【问题描述】:

在将 EF 4.1 代码优先方法与 Sql compact 4 一起使用时,我收到此错误消息。我没有看到任何具有多个 id 列的模型,所以我不知道为什么会发生此错误。什么会导致这个错误?

编辑:我想指定一些额外的东西。数据库创建是成功的,但模型创建不是。并且从 sqlce 方法中抛出了异常。

【问题讨论】:

  • 你能为我们拍一张你的模型的截图吗?

标签: c# .net entity-framework ef-code-first entity-framework-4.1


【解决方案1】:

此问题源于返回两个或多个具有相同名称的列的 SQL 查询。 SQL 将毫无问题地处理列上完全重复的名称,但 c# 会像这个一样吐出错误。

示例情况:

TableA
  int Id
  varchar Name

TableB
  int Id
  int A_Id
  varchar Name


SELECT A.*,
       B.Name
FROM TableA A

INNER JOIN TableB 
   ON B.A_Id = A.Id

Id 和 Name 列将重复并导致 EF 异常

【讨论】:

  • 我明白了。继承的模型具有相同的命名属性。
  • @Freshblood 对不起,我没有回复你。我认为继承可能是原因,但当时没有提到这种情况。我很高兴这有帮助!
【解决方案2】:

当迁移代码未更新到最新时,也可能导致此问题。这通常发生在执行 Add-Migration 多次时。改为运行以下命令:

Add-Migration <migration-name> -force

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 2022-10-09
    • 1970-01-01
    相关资源
    最近更新 更多