17

5つのテーブルを持つデータベースがあります。最初にそれらのテーブルを追加しましたが、関係のコンパイルエラーのためにいくつかを削除することにしました。

今、それらを追加し直したいときは、edmxファイルを開いています->データベースからモデルを更新しています...これらのテーブルは[追加]タブには表示されませんが、[更新]タブにのみ表示されます。

どうすればそれらを元に戻すことができますか?

4

5 に答える 5

28

モデルにテーブルを再度追加するには、最初にモデルからテーブルを削除する必要があります。(テーブルのリストは[model.Store]ツリーに表示されます(「モデルブラウザ」ペインを参照-マウスの右クリックメニューから開くことができます)。「データベースからモデルを更新...」を実行すると、テーブルは次のようになります。 「更新ウィザード」の最初のステップの「追加」タブに表示されます。

完了する手順:

  1. VisualStudioでモデルを閉じます。
  2. .edmxファイルをテキストエディタで開きます。
  3. xmlエンティティ要素を検索して削除します(以下の注を参照)。
  4. VisualStudioでモデルを開きます。
  5. [データベースからモデルを更新]をクリックします。

モデル内のテーブルへのすべての参照を削除するには:

  • 'EntityContainer'要素で、'Name'属性が値[TableNameToReAdd]に設定されているすべての'EntitySet'子要素を削除します。
  • 'EntityContainer'要素で、'EntitySet'属性が値[TableNameToReAdd]に設定されている'End'要素が存在するすべての'AssociationSet'子要素を削除します。
  • 'EntityContainer'要素で、'Name'属性が値[TableNameToReAdd]に設定されているすべての'EntityType'子要素を削除します。
  • 'EntityContainer'要素で、'Role'属性が値[TableNameToReAdd]に設定されている'End'要素が存在するすべての'Association'子要素を削除します。
于 2010-02-05T16:48:46.620 に答える
10

私はこれと他の検索オプションを読んでいますが、最終的に私はこの問題をショートアウトするのに役立つ別の答えを見つけました。

エラーメッセージから、テーブル/ビューの1つに主キーがないように見えます。EFは、エンティティキーを生成するために、すべてのテーブルに主キーが必要です。それでもアプリケーションを実行できる場合がありますが、警告に従って主キーを追加することを強くお勧めします。

私の問題を解決したリンク。

更新しました

いつかすべてがうまくいったとしても、新しい列を追加したり、データ型を変更したりしても、変更は反映されません。

これを手動で更新するのが最善の方法ですが、それでも希望はありません。@ mathijsuitmegenで提案されているように、テーブルを削除して追加しますが、これが最後のオプションです。

于 2015-07-11T14:40:05.843 に答える
3

より簡単な解決策はModel Browser下にあります

[modelName].Store -> Tables/ViewS

表示されていないテーブルを削除します。次に、モデル ""を右クリックするupdate from databaseと、テーブルが表示されます。

于 2016-01-14T09:32:29.060 に答える
2

モデルで削除されたエンティティを再度追加する必要があります。
edmxファイルを編集する以外に、これを行う別の方法があります。
データベースからテーブルを一時的に削除する必要があります。

注:データベースがまだ本番環境にない場合にのみ、これを実行します。

したがって、SQL Server Management Studioで、最初にスクリプトを作成します
。モデルで欠落しているエンティティに対応するテーブルを右クリックします。「スクリプトテーブル」、「作成先」、「新しいクエリエディタウィンドウ」を選択します。

2番目のステップは、テーブルを削除することです。もう一度右クリックして、[削除]を選択します。削除を確認します。

Visual Studioに戻り、モデルの更新を行います

SQL Server Management Studioに戻り、作成した「作成」スクリプトを実行します。
テーブルがデータベースに再度追加されます。

Visual Studioで、更新を再度実行できるようになりました。テーブルは[追加]タブの下に表示されます!!!

于 2010-10-13T07:51:58.057 に答える
0

モデルから削除する必要がある上記の参照のリストに加えて、テーブルに他のテーブルとの連想関係がある場合は、AssociationSetMapping要素も削除することを検討してください。

于 2013-12-07T07:05:09.190 に答える