2011-01-06 21 views
16

newbie to Entity Framework VS 2010とSQL Server 2008 Expressを使用してDBを表現します。エンティティデータモデルを正しく削除して再追加する方法

新しいテーブルを追加した後、エンティティデータモデルをリフレッシュするときに問題が発生しました。そこで、モデルを削除して再生成するためにここで見つけた提案に従いました。

エンティティデータモデルウィザードの「データ接続の選択」セクションに移動し、「Web.configのエンティティ接続設定を次のように保存する」にチェックが入っています。しかし、私の既存の名前には1が付いています。たとえば、MyDatabaseEntitiesはMyDatabaseEntities1になりました。もちろん、私は "1"を追加したくありません。私はWeb.configで既存の接続文字列を削除し、私の解決策でその名前への参照をすべて削除しました。私がしようとすると、まだ私は次のエラーで提示してい続けるために:

私は見つけることができません「アプリケーション設定の既存のプロパティ名と 『MyDatabaseEntites』競合別の名前を選んでください」ソリューション内の任意の場所でその名前を参照してください。私はそのオプションのチェックを外すことができますが、それは続行しますが、それでもデータベースの2つのテーブルを追加しません。次に、私はすべてを完全にシャットダウンし、リブートして、もう一度試しました。今回は私が上記のエラーは発生しませんでしたが、私の新しい3つのテーブルのうち2つはまだedmxモデルに追加されていません。

アイデアをいただければ幸いです。これはVS2010/.NET 4でもまだまだバグのようです。私の信念を回復するのに役立ちます...私はこの時点でEntity Frameworkを放棄する気がします。これまでの私の経験とここに掲載されている他の問題のいくつかに基づいて、有用なコードを書くよりも、Entity Frameworkの不自然さを追う時間を増やすように感じています。

更新:解決策が見つかりました。デザイナーはエラーを表示しません。エラーを表示するには、ネイティブXML(edmxファイル)を参照する必要があります。ここをクリックしてください:ADO.NET Entity Framework: Update Wizard will not add tables

+0

「アプリケーション設定の既存のプロパティ名との「MyDatabaseEntites」競合にコメントするだけです。別の名前を選択してください」:VSが見えるようですデータモデルが追加されるプロジェクトに属するものだけでなく、名前の後にソリューション全体のALL .configファイルを追加します。したがって、ソリューションのすべての.configファイルから設定を削除する必要があります。 –

+0

[ADO.NET Entity Framework:ADO.NET Entity Frameworkの重複可能性:更新ウィザードでテーブルを追加できません](http://stackoverflow.com/questions/543971/ado-net-entity-framework-update-wizard-will-not-add-tables) ) – rcdmk

+0

Web設定ファイルから既存の接続文字列をすべて削除し、アプリケーションをビルドします。既存のプロパティ名を使用できるようになりました。 –

答えて

1

あなたの問題に対する具体的な答えはわかりませんが、私はこの矛盾を解消する方法をお勧めします。

私は通常、自分のEF作業を別のライブラリに分割します。 Cyber​​dyne.Terminatorで作業している場合は、Cyber​​dyne.Terminator.DataというEFクラスライブラリを作成します。そうすれば、モデルを吹き飛ばして最初からやり直したい場合は、すべてが依存ファイル、特にweb.configとは別のものになります。

これは、不足しているテーブルを修正する可能性があります。私が見たことは、テーブルを追加して削除した場合です。それは "テーブルの追加"ダイアログに再び表示されません(表示するには名前を変更する必要があります)。しかし、私はそれがEF 4.0で修正されたと考えました。ダニー。問題が解決しない場合は、テーブルの名前を変更して再追加し、名前が表示されたら名前を変更してみてください。

EFは、お尻の痛みを確実にしています。私があなたに話すことができるのは、私が一般的にこれらの頭痛を経験し、問題を学び、再び彼らに悩まされてはいけないということだけです。あなたがEFに立つことができないなら、あなたはNHibernateを見るかもしれません - 私はそれについても非常に強い印象を持っています。

+1

応答Chrisに感謝します。それは別のライブラリの良い提案です。私はここで私の問題への解決策を見つけました:http://stackoverflow.com/questions/543971/ado-net-entity-framework-update-wizard-will-not-add-tables投稿する前にもう少し調べておくべきでした。 – David

+0

うわー...それは狂っている。 XMLに埋め込まれているのではなく、本当にポップアップメッセージでなければなりません。 –

15

エラーが「app.configを」ファイルの設定(ソリューションエクスプローラ参照)で残りの接続文字列によって引き起こされ、それがこのセクションにあります: 「のconnectionStrings」(かぎ括弧で囲まれた)

ちょうどからそれを削除しますそこ。

+1

接続文字列を削除しましたが、まだエラーメッセージが表示されていました。再起動が必要VS – user65439

+0

VS15でこの問題が発生しましたが、web.configにconnectionstringがなく、app.configがありません。 – xiimoss

3
  1. ウェブアプリケーションを開発する場合は、IISを再起動してください。
  2. 再起動Visual Studio用EntityDataModel接続web.configファイルから文字列 ラインまたは
  3. 新規エンティティData Modelを追加し、古い名前のように名前を変更app.configを、
-2

イムので、申し訳ありませんが削除した後、私の英語 が、解決策は簡単です。 あなたはado.net を削除する必要があり、app.confと接続文字列<>、 DEBUGプロジェクトを削除し、最終的にあなたの接続を確認

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

ダブルado.netを通じて新しいデータベースを追加するために行きます右にスクロールしてください。ほとんどの場合、これが私に起こると、Visual Studioは別のものの後ろに接続文字列を追加しています。私はこれを数回やったことがあり、私のアプリの設定がどこにあるのか不思議に思った(いいえ、アプリの設定はありません、ちょうどmvcのウェブ設定です)ので、ダイアログはちょっと混乱します。確かに、接続文字列が別の文字列の直後に潜んでいる可能性が最も高いです!

0

単に 'EntireSolution/CurrentProject' を選択

Ctrl+F

キーを押して、ドロップダウンリストで、[Enter]キーを押します。これまでにこの名前が生成されて、あなたを見せてくれるでしょう。 私はweb.configファイルに入ります。そこから完成した接続ラインを削除してください。もう一度追加し直してください。

関連する問題