2011-01-06 62 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你..

相關問題