エンティティフレームワーク4.1デザイナー「データベースからモデルを更新する」選択したエンティティのみができますか?

StackOverflow https://stackoverflow.com/questions/6302968

質問

状況: データベーススキーマは、システムの情報を理想的な表現と考えるものではなく、変更できない場合があります。エンティティフレームワークを使用して、このような状況に反してコーディングするためのより良い概念モデルを作成しています。これは、データベースからモデルを更新し、デザイナーまたはテキストエディターを使用して.edmxファイルを介して自分で変更することを意味します。

問題: データベースからモデルを更新すると、慎重に変更されたすべての変更がウィンドウから捨てられます。これにより、.edmxファイルを直接編集することで基本的にそれを行うことを余儀なくされるため、新しいエンティティを追加することができます。

質問: エンティティフレームワークを取得して、データベースから選択したエンティティのみを更新する方法はありますか?それとも、新しいエンティティを追加するときに、モデルの残りをそのままにしておくことを伝えることは可能ですか?

ありがとう!

役に立ちましたか?

解決

いいえ、ビルトインデザイナーで選択的な更新を作成する方法はありません。また、デザイナーはあなたのすべての変更を捨てません。通常、概念モデルには触れません(一部の関連付けを継続的に変更する場合はまれな場合を除く)が、マッピングをマッピングしますが、常にストレージモデルを削除し、新しい定義でオーバーライドします。私は、概念モデルの変更と、データベースからの更新のマッピングと実行の実行に問題なく取り組みました。

デザイナーは、Visual Studioで他の人と同じように機能します - 生成されたコード(ストレージモデル)に触れることはサポートされていません。一度それを行うことはできません データベースからの更新 もう。

がある 商用ツール これはおそらくより良いモデルの更新をサポートしています - トライアルを試すことができます。

他のヒント

選択したエンティティを更新することで、1つ以上のテーブルのみを意味する場合、モデルからそれらのテーブルを削除し、個別にそれらをプルするためにそれらを個別に選択することでそれらを再び追加できます - 私は根本的なテーブルが変更されたときにしばしばそれを行います(特に開発中)。

エンティティ/テーブルがモデルに引っ張られた後、それらの再生エンティティに対して行った手動の変更を失うことになります(つまり、ナビゲーションプロパティの名前を変更することがよくあり、テーブルの各再輸入の後、手動で名前を変更する必要がありますまた)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top