- だから私は自分のedmxを作った。
- 次に、データベースを少し変更し、列を NOT NULL から NULL を許可するように変更します。
- edmx に移動し、右クリックして [データベースからモデルを更新] を選択します。
今、私は自分のプログラムに入りましたが、実際には更新されていません...列にnullを入れることはできません。edmx を正しく更新するにはどうすればよいですか? ありがとうございました。
今、私は自分のプログラムに入りましたが、実際には更新されていません...列にnullを入れることはできません。edmx を正しく更新するにはどうすればよいですか? ありがとうございました。
EDMX からの更新/削除は常に機能するとは限りません。[データベースからモデルを更新] をクリックしてもモデルが更新されない場合は、DB のビュー/テーブルを更新したとします。次の手順を実行します。
1) モデル ダイアグラムからビュー/テーブルを削除します
2) EDMX を xml ビューに切り替えます (edmx ファイルを右クリックし、[開く] を選択します)
3) xml エンティティ要素を検索して削除します
4) EDMX ビューに戻ります
5) [データベースからモデルを更新] をクリックします
これは、DB に加えたあらゆる種類の変更を EDMX に反映する必要があります。面倒ですが、問題なく動作します。
理想的な世界では、データベースからの更新モデルが DB から EDMX への変更を同期することを期待します。しかし、それはほとんどの場合うまくいきません。
私が成功したのはこれ(VB.Net)です。
データベースから更新モデルを選択することは、EDMX を更新するための最良の方法です。概念レイヤーで更新されない特定のプロパティがあります。
Model Viewer ツールボックスで Store レイヤーを表示して、Store レイヤーが更新されていることを確認します。ストアが適切に更新されている場合は問題なく、データベースは同期されています。その場合は、ビジュアル デザイナーに移動し、フィールドをクリックしてプロパティに移動し、概念側で NotNull プロパティを更新します。
はい、ほとんどの場合は機能しません:-/
"最善の方法" (体系的に機能するため) は、EDMX ファイルを削除して再度生成することです。ただし、App.config で接続文字列を削除することを忘れないでください (そうしないと、VS2008 ウィザードが既定のエンティティ名にサフィックスを追加します)、キャッシュをクリアします。
生産性が劇的に低下するため、これらのツールが次のリリースでより適切に機能することを願っています...
これが最も簡単な方法です。
1.EDMXファイルを更新後、プロジェクトをビルドします。
2.ソリューション エクスプローラーで .tt ファイルを右クリックします。
3.「カスタムツールの実行」オプションを選択します。
これにより、.tt ファイルが更新されます。
出典:こちら!
この答えはより良いです: https://stackoverflow.com/a/23886016/1014884
手動で編集するとエラーが発生するか、ウィザードなどのツールを使用すると失われます。ウィザードを使用した削除と更新は、はるかに優れています。
VS の XML エディターで edmx ファイルを開き、更新の試行時にエラーが発生したかどうかを確認します。
<!--Errors Found During Generation:
warning 6013: The table/view 'foo.dbo.snafu' does not have a primary key
defined and no valid primary key could be inferred. This table/view has
been excluded. To use the entity you will need to review your schema,
add the correct keys and uncomment it.
<EntityType Name="snafu">
<Property Name="snafu_column" Type="smallint" />
</EntityType>-->
上記の場合...問題のテーブルに主キーを追加すると、「データベースからモデルを更新」が機能しました。
たとえば、文字列属性の最大長は更新されません!
TFS を使用している場合、ファイルを削除するのはよくありません。履歴を保持し、他のユーザーに影響を与えないようにする必要があります。
私にとっては、edmxファイルを完全に再作成するために使用できる小さな別のプロジェクトを使用して動作します.xmlで開き、既存のファイルにコピーして貼り付け、VSが.csファイルを再作成するためにモデル内の1つの形状を移動します. 出来上がり、更新されました。