2009-04-27 20 views
3

Entity Frameworkにかなり大きなDBが繋がっています。私は共通のキー(fk)がデザインから削除されたテーブルのセットを持っています。私が「データベースからモデルを更新する」とき、私はこの欠落しているキーに関する一連のエラーを受け取ります。Entity Framework:変更されたテーブルの再生成(キーの変更)

なぜ更新処理でこのキーが削除されたことが正確に検出されないのですか?また、モデルからプロパティを手動で削除すると、他のエラーで終了します。また、単にテーブルを削除して再追加しようとしましたが、テーブルが更新ウィザードの[追加]セクションに表示されません。

全体を削除してからやり直すのではなく、正常に回復する方法はありますか? EFチームは、この問題のいくつかがすでに修正されているこのウィザードの新しいバージョンをリリースしましたか?

答えて

5

エンティティフレームワークは時折混乱します。必要なことは、モデルからエンティティテーブルを削除し、SQL Serverのテーブルの名前をTableName_Tempに変更してモデルを更新し、エンティティテーブルをOKにする必要があるため、エンティティテーブルを再度削除して元の名前に戻します。もう一度モデルをリフレッシュしてください。今回はすべてがうまくいくはずです。

私はこれが混乱した手順であることを知っていますが、これはedmx全体を吹き飛ばすことなく、最初から始めてこの問題を解決するために見つけた唯一の方法です。現在私の組織では、必要なときに削除して問題なく再作成できるように、絶対に必要でない限り、EDMXを変更しないというポリシーがあります。

希望すると便利です。

+0

これは再生プロセスに関する悲しい解説ではありませんか?会社のルールは、単にedmxの変更を許可しないことですか? MSは本当に人々のためにこの痛みポイントに対処する必要があります。 –

+0

私は、4.0リリースのLINQ to SQLとLINQ to Entitiesの問題点のほとんどを解決していると思います。 EDMXファイルを必要としないモードも用意されています。私はそのモードがどの程度完全に機能しているかはわかりませんが、Fluentマッピングを使用しない場合、NHibernateよりもきれいな実装を提供することができます。 – Lukasz

関連する問題