17

实体框架的新手在这里。使用 VS 2010 和 SQL Server 2008 表达数据库。

添加新表后,我无法刷新实体数据模型。所以,我按照我在这里找到的建议删除并重新生成模型。

我进入实体数据模型向导的“选择您的数据连接”部分,并选中“将 Web.config 中的实体连接设置保存为:”。但是,我现有的名称附加了一个 1。例如,MyDatabaseEntities 现在是 MyDatabaseEntities1。当然,我不希望附加“1”。我终止了 Web.config 中现有的连接字符串,并在我的解决方案中删除了对该名称的所有引用。然而,当我尝试继续时,出现以下错误:

“'MyDatabaseEntites' 与应用程序设置中的现有属性名称冲突。请选择其他名称”

我在解决方案的任何地方都找不到对该名称的引用。我可以取消选中该选项,它将继续,但它仍然不会在数据库中添加两个表。接下来,我完全关闭了一切,重新启动,然后再次尝试。这次我没有收到上面的错误,但是我的三个新表中的两个仍然没有被添加到 edmx 模型中。

任何想法表示赞赏。此外,即使在 VS2010/.NET 4 中,这似乎仍然存在相当大的问题。帮助恢复我的信心......我现在想放弃 Entity Framework。根据我迄今为止的经验和此处发布的其他一些问题,我觉得我将花费更多时间来研究 Entity Framework 的陌生性,而不是编写有用的代码。

更新:我找到了解决方案。设计器不显示错误。您必须查看本机 XML(edmx 文件)才能看到错误。请参见此处: ADO.NET Entity Framework:更新向导不会添加表

4

7 回答 7

20

该错误是由“App.Config”文件(请参阅解决方案资源管理器)中设置中的剩余连接字符串引起的,它在本节中:“connectionStrings”(用尖括号括起来)

只需从那里删除它。

于 2012-03-25T00:26:21.153 回答
4
  1. Restart IIS if you develop web app.
  2. Restart Visual Studio After Deleting The EntityDataModel Connection String Line from web.config or app.config
  3. Add New Entity Data Model and rename it like old name,
于 2012-06-08T02:20:22.577 回答
1

我不知道您的问题的具体答案,但我想我可以推荐一种可以消除这种冲突的方法。

我通常将我的 EF 工作分解为一个单独的库。如果我正在研究 Cyber​​dyne.Terminator,我会创建一个名为 Cyber​​dyne.Terminator.Data 的 EF 类库。那样的话,如果你想摆脱模型并重新开始,一切都与你的依赖文件分开,特别是你的 web.config。

这些都不太可能修复丢失的表,可能。我看到发生这种情况的一件事是,如果我添加一个表,然后将其删除。它不会再次出现在“添加表”对话框中(您必须重命名它才能显示)。但我认为这在 EF 4.0 中已修复。不知道。如果问题仍然存在,您可以尝试重命名表,重新添加它,然后在出现时将其重命名。

可以肯定的是,EF是一个痛苦的屁股。我唯一可以告诉你的是,我通常不得不解决这些头痛问题,了解问题,并且再也不会被它们困扰。如果你不能忍受 EF,你也可以看看 NHibernate——我对此也有非常强烈的印象。

于 2011-01-06T17:59:21.493 回答
1

仔细检查您的连接字符串,并继续向右滚动。大多数情况下,当我遇到这种情况时,Visual Studio 会在另一个后面附加一个连接字符串。我已经这样做了几次,想知道我的应用程序配置在哪里(不,没有应用程序配置,只有 mvc 中的 Web 配置),所以对话框有点混乱。果然,很可能那个连接字符串直接潜伏在另一个字符串后面!

于 2017-03-31T01:51:39.013 回答
0

实际上这令人沮丧,因为您试图在 app.config 中看到如果有另一个字符串并且您只看到 1 个字符串,实际上 VS 所做的有时是在同一行中附加第二个字符串。看下面这张图片

在此处输入图像描述

看起来有 2 个 ConnectionStrings 吗?(其实,是)

现在,看这张照片: 在此处输入图像描述

您也可以按 Ctrl+ED 来格式化配置文件,看看是否还有第二个字符串隐藏在某个地方。希望这会对某人有所帮助。

于 2018-05-06T09:47:04.367 回答
0

只需按下

Ctrl+F

键并在下拉列表中选择“EntireSolution/CurrentProject”,然后按 Enter。生成此名称的任何位置都会显示给您。我进入web.config文件。所以从那里删除生成的完整连接线。并重新添加。然后希望您不会再收到此消息。谢谢..

于 2017-07-02T14:27:15.023 回答
-2

我对我的英语感到很抱歉,但解决方案很简单。您必须删除 ado.net 然后转到 app.conf 并删除连接字符串<>,调试您的项目,最后通过 ado.net 添加新数据库

TO ADD ADO.NET
RIGHT CLICK ON YOUR PROJECT NAME, THEN, ADD NEW ITEM, DATA AND SEARCH ADO.NET...

I hope help you, have good day!
angelsantacruzm
于 2016-05-17T05:59:07.307 回答