2011-01-06 59 views
16

新手到实体框架。使用VS 2010和SQL Server 2008 express数据库。如何在此处正确删除并重新添加实体数据模型

我在添加新表后刷新实体数据模型时遇到问题。所以,我遵循了我在这里发现的建议,只是删除并重新生成模型。

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

“‘MyDatabaseEntites’在应用程序设置现有的属性名称冲突,请选择一个不同的名字”

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

任何想法表示赞赏。此外,这似乎仍然是VS2010/.NET中的很多bug。帮助恢复我的信仰......我觉得现在放弃实体框架。根据我迄今为止的经验和其他一些发布在这里的问题,我觉得我将花更多的时间来追逐Entity Framework的陌生感,而不是编写有用的代码。

更新:我找到了一个解决方案。设计师不会显示错误。您必须查看本机XML(edmx文件)以查看错误。看到这里:ADO.NET Entity Framework: Update Wizard will not add tables

+0

只是对“‘MyDatabaseEntites’与现有的属性名称在应用程序设置,请选择一个不同的名称冲突。”评论:看来,VS看起来名称后面的整个解决方案的所有.config文件,而不仅仅是属于要添加数据模型的项目的文件。因此,您必须从解决方案中的所有.config文件中删除该设置。的 – 2012-09-21 07:35:14

+0

可能重复[ADO.NET实体框架:更新向导将不会增加表(http://stackoverflow.com/questions/543971/ado-net-entity-framework-update-wizard-will-not-add-tables ) – rcdmk 2013-03-11 20:40:54

+0

从Web配置文件中删除所有现有连接字符串并构建应用程序。现在您可以使用现有的属性名称。 – 2017-02-10 14:50:40

回答

1

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

我通常把我的EF工作分解成一个单独的库。如果我在Cyber​​dyne.Terminator上工作,则创建一个名为Cyber​​dyne.Terminator.Data的EF类库。这样,如果你想吹掉模型并重新开始,所有东西都与你的依赖文件分开,特别是你的web.config。

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

EF确实是一个痛苦的屁股。我唯一可以告诉你的是,我通常必须解决这些头痛问题,了解问题,而不再被他们困扰。如果你无法忍受EF,那么你也可以看看NHibernate--我对此也有很强烈的印象。

15

错误是由剩余的连接字符串在“App.Config中”文件(见解决方案管理器)设置引起的,它是在本节: “的ConnectionStrings”(由尖括号括起)

刚刚从删除那里。

3
  1. 重新启动IIS如果您开发Web应用程序。
  2. 重新启动Visual Studio删除EntityDataModel连接从web.config中 串线或app.config中
  3. 添加新实体Data Model和像旧名称重命名,
-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 
0

仔细检查您的网络连接添加新的数据库字符串,并保持向右滚动。大多数情况下,当这发生在我身上时,Visual Studio已经在另一个后面附加了连接字符串。我已经做了几次,并想知道我的应用程序配置(不,没有应用程序配置,只是在mvc中的web配置),所以对话框有点混乱。果然,最有可能的是连接字符串直接潜伏在另一个之后!

0

只需按下

Ctrl+F

键并在下拉列表中选择 'EntireSolution/CurrentProject',然后按回车键。哪里有这个名字产生它会告诉你。 我进入web.config文件。所以删除那个从那里生成完整的连接线。并重新添加它。然后希望你可能不会得到这个消息again.Thank你..

相关问题