刷新EF设计时出现异常

4

刚开始使用Entity Framework...

我正在使用最新版本的EF和Visual Studio 2012,当我尝试从数据库刷新以更新模型中已更改的表时,设计师会抛出一个COMException“具有名称'XXXXModel.Context.tt'的文件或文件夹已经存在。请为要添加的项目提供一个唯一的名称。”

看起来它想让我在从数据库刷新时删除所有模型文件,这肯定不对。我是不是漏掉了什么?


我有点困惑。你是想更新数据库还是更新模型? - Sefa
在对数据库进行调整后刷新模型时出现了错误。 - Gary
这里还有一个相关的问题,但仍然没有答案:https://dev59.com/Bofca4cB1Zd3GeqPgUKg - NahuelGQ
我不知道发生了什么事,但在我的情况下,我撤消了所有更改,并从源代码控制强制覆盖。我认为这修复了此错误,但然后它开始要求连接字符串,就好像它是一个新的DbContext一样。原来我的连接字符串中的用户没有与SQL服务器中的登录关联,因此无法使用现有的连接字符串进行连接。因此,用户问题可能对最初的错误有所贡献,但我不确定。 - xr280xr
2个回答

5
这是因为Entity Framework会在一个自动生成的container.designer.cs文件中创建模型。该文件包含与数据库表相对应的类。
在这种情况下,不要删除模型,只需删除.tt文件即可。

1
即使我有一个自定义模板? - SomeCode.NET

1

我也遇到过这种情况。我指责了 Db Context 生成器,它没有覆盖以前生成的 POCO 类。

如何解决这个问题,请参考@husonos的答案:

  1. 在项目中删除 *.tt 文件和你的 .edmx 文件
  2. 添加新的“代码生成项”(右键单击 edmx 设计视图)
  3. 选择 Db Generator (<>.tt)
  4. 命名并保存

然后你就可以继续工作了。

在某些情况下,可能会出现覆盖现有内容的消息,我选择了是。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接