【问题标题】:Error 3027: No mapping specified for the following EntitySet/AssociationSet [closed]错误 3027:没有为以下 EntitySet/AssociationSet 指定映射 [关闭]
【发布时间】:2015-06-17 05:28:40
【问题描述】:

我正在使用EntityFramework 6,在数据库中插入表格后,我使用了Database中的Update Model,出现上述错误。请说明如何解决此问题。

【问题讨论】:

标签: sql-server entity-framework-6


【解决方案1】:

在记事本上打开 edmx 文件,找到取消映射关联并将其删除。它 应该管用。

【讨论】:

  • 奇怪的是这对我有用,为什么首先包含系统图表?我没有添加它...不是一个漂亮但有效的解决方案:)
【解决方案2】:

不太满意,但我通过删除并重新添加模型解决了它:

  1. 右键单击 edmx-diagram 并选择“模型浏览器”
  2. 删除导致问题的实体类型
  3. 保存(只是为了确定,重新生成文件)
  4. 再次从数据库表中添加模型并保存。

警告随后消失了。

【讨论】:

    【解决方案3】:

    我得到了同样的错误,发现我添加的表中的外键与引用表中的类型不同。

    【讨论】:

      【解决方案4】:

      我如何解决这个问题:

      1. 在 edmx 文件中删除图表中的所有实体。
      2. 如果此 edmx 文件是您解决方案中项目的一部分,请重建您的项目。
      3. 重建您的解决方案。

      我不确定为什么会发生这种情况,但就我而言,当我更新我的数据库并且我没有更新我的 edmx 文件时,它始终会触发此错误。

      【讨论】:

        【解决方案5】:

        尝试从 EDMX 中删除实体(表),然后运行更新以再次添加该表。

        【讨论】:

          【解决方案6】:

          有时,当我们更新表时,实体框架中会出现问题,然后其他对象(如 SP)会自动刷新。请确保您的情况没有发生这种情况。您可以尝试其他方法 - 将 model.tt 文件替换为新文件,以实现此目的,

          1. 右键单击 edmx 文件中的任意位置。
          2. 选择“添加代码生成项”。
          3. 选择“EF 6.x EntityObject Generator”。
          4. 将名称从“Model2.tt”更改为“Model1.tt”(如果您的旧模型文件名为 model1.tt)。
          5. 点击添加。

          【讨论】:

            【解决方案7】:

            删除表,然后将其重新添加到 EDMX 以修复映射问题。

            【讨论】:

              【解决方案8】:

              如果您多次尝试从数据库中更新您的模型,并且存在相互冲突的更改,则可能会发生这种情况。 如果您使用的是 git,请放弃 edmx 文件中的更改,或回滚到以前的版本。 然后右键单击 Visual Studio 中的 edmx 文件 > 从数据库更新模型 选择您要包含的新表/视图,否则它将简单地刷新 > 完成

              【讨论】:

                猜你喜欢
                • 2014-10-12
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-09-11
                • 1970-01-01
                • 2014-12-27
                相关资源
                最近更新 更多