17

EntityFrameworkの初心者はこちら。VS2010およびSQLServer2008ExpressDBを使用します。

新しいテーブルを追加した後、エンティティデータモデルを更新するのに問題がありました。そこで、ここで見つけた提案に従って、モデルを削除して再生成しました。

エンティティデータモデルウィザードの[データ接続の選択]セクションに移動し、[エンティティ接続設定をWeb.configに次のように保存する]がオンになっています。ただし、私の既存の名前には1が追加されています。たとえば、MyDatabaseEntitiesはMyDatabaseEntities1になりました。もちろん、「1」を付けたくありません。Web.configの既存の接続文字列を削除し、ソリューションでその名前へのすべての参照を削除しました。それでも続行しようとすると、次のエラーが表示されます。

「「MyDatabaseEntites」がアプリケーション設定の既存のプロパティ名と競合しています。別の名前を選択してください」

ソリューションのどこにもその名前への参照が見つかりません。そのオプションのチェックを外すと続行されますが、データベースに2つのテーブルが追加されません。次に、すべてを完全にシャットダウンして再起動し、再試行しました。今回は上記のエラーは発生しませんでしたが、3つの新しいテーブルのうち2つはまだedmxモデルに追加されていません。

どんなアイデアでも大歓迎です。また、これはVS2010 / .NET 4でもまだかなりバグがあるようです。私の信念を取り戻すのを手伝ってください...この時点で、EntityFrameworkを放棄したいと思います。これまでの経験とここに投稿された他のいくつかの問題に基づいて、有用なコードを書くよりもEntityFrameworkの奇妙さを追いかけることに多くの時間を費やすつもりだと感じています。

更新:解決策を見つけました。デザイナはエラーを表示しません。エラーを確認するには、ネイティブXML(edmxファイル)を調べる必要があります。ここを参照してください: ADO.NET Entity Framework:更新ウィザードはテーブルを追加しません

4

7 に答える 7

20

このエラーは、"App.Config" ファイル (ソリューション エクスプローラーを参照) の設定に残っている接続文字列が原因で発生し、次のセクションにあります: "connectionStrings" (山かっこで囲まれています)

そこから削除するだけです。

于 2012-03-25T00:26:21.153 に答える
4
  1. IISWeb アプリを開発する場合は再起動します。
  2. EntityDataModelweb.config または app.config から接続文字列行を削除した後に Visual Studio を再起動する
  3. 新しいエンティティData Modelを追加し、古い名前のように名前を変更します。
于 2012-06-08T02:20:22.577 に答える
1

あなたの問題に対する具体的な答えはわかりませんが、この対立を解消するアプローチをお勧めできると思います。

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

おそらく、これのどれも不足しているテーブルを修正する可能性はありません。これが発生する場所を確認したのは、テーブルを追加してから削除した場合です。[テーブルの追加]ダイアログには再度表示されません(表示するには名前を変更する必要があります)。しかし、それはEF4.0で修正されたと思いました。ダンノ。問題が解決しない場合は、テーブルの名前を変更して再度追加し、表示された場合は名前を元に戻してみてください。

EFは確かにお尻の痛みです。私があなたに言える唯一のことは、私は一般的にこれらの頭痛を乗り越え、問題を学び、二度と彼らに悩まされることはないということです。EFに耐えられない場合は、NHibernateもご覧ください。私もその印象を強く受けています。

于 2011-01-06T17:59:21.493 に答える
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 に答える