【问题标题】:Exception when refreshing EF designer刷新 EF 设计器时出现异常
【发布时间】:2015-01-29 14:45:11
【问题描述】:

实体框架的新手......

我目前正在使用 EF 和 Visual Studio 2012 的最新更新,当尝试从数据库刷新以更新我的模型中已更改的表时,设计器抛出 COMException "A file or folder with name 'XXXXModel .Context.tt' 已经存在。请为我们正在添加的项目指定一个唯一的名称。

看起来它希望我在从 DB 刷新时删除所有模型文件,这是不对的。我错过了什么吗?

【问题讨论】:

  • 我很困惑。您是否正在尝试更新数据库或更新您的模型?
  • 调整数据库后刷新模型时出现错误。
  • 这里,另一个相关问题,仍然没有答案:stackoverflow.com/questions/28153536/…
  • 我不知道发生了什么,但就我而言,我撤消了所有更改并强制从源代码管理中覆盖。我认为修复了这个错误,但随后它开始要求一个连接字符串,就好像它是一个新的 DbContext。原来我的连接字符串中的用户没有与 SQL 服务器中的登录相关联,因此它无法连接到现有的连接字符串。所以用户问题可能导致了最初的错误,但我不确定。

标签: c# entity-framework visual-studio-2012


【解决方案1】:

这是因为实体框架在自动生成的container.designer.cs 文件中创建了您的模型。此文件包含与您的数据库表映射的类。

此时不要删除模型,只删除.tt文件

【讨论】:

  • 即使我有自定义模板?
【解决方案2】:

这也发生在我身上。 我责怪 Db Context 生成器没有覆盖以前生成的 POCO 类。

如何克服它是按照 @husonos 的回答,其中:

  1. 在项目中的 .edmx 文件上删除 *.tt 文件
  2. 添加新的“代码生成项”(通过右键单击 edmx 设计视图)
  3. 选择数据库生成器 (.tt)
  4. 命名,保存

然后你应该一切顺利。

在某些情况下,可能会出现说覆盖现有的消息,我确实选择了。

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2011-08-30
    • 1970-01-01
    • 2011-08-21
    • 2021-08-05
    相关资源
    最近更新 更多