1

私は、変更を加えるのが難しい方法で Entity Framework を使用するいくつかのプロジェクトを継承しました。ほとんどすべてのテーブル (cca 50 テーブル) ともちろんストアド プロシージャにQueryViewsを使用します。ここで、かなり多くのことを変更する必要があります...テーブルの名前を変更したり、テーブルを追加したり、列を変更したりします。

「データベースからモデルを更新...」ウィザードを使用しようとすると、データベースから の更新 (テーブルを追加/削除し、ウィザードを使用して他のテーブルを更新する場所) よりも、エンティティ データ モデル デザイナーのレンダリングが機能しなくなります。 .. 「エンティティ データ モデル デザイナーは、要求されたファイルを表示できません。」というテキストが表示された空白のウィンドウが表示されます。

そのため、さまざまなアプローチ ( edmxファイルを手動で編集するなど) を試しましたが、問題は残ります。エディターには、"エンティティ データ モデル デザイナーは、要求されたファイルを表示できません" のみが表示されます。

QueryViews を使用したマッピングは、おそらくより複雑になります。デザイナーが QueryViews を適切に操作できない (デザイナーを使用してそれらを編集できない) ことはよく知られており、エンティティ フレームワーク エンジンは、CSDL の列が QueryViews を使用してマップされていることを認識せず、すべての列に文句を言います。 (これは QueryView を使用してマップされます) 「エラー 11009: プロパティ 'XXX' がマップされていません。」 このようなエラーがちょうど 100 件表示されます。100 番目のエラーの後のどこかに、(他のエラーの形で) Designer で問題を解決する方法のヒントがあるかもしれませんが、それらを表示する方法がわかりません。100 の制限は、VS2010 (http://stackoverflow.com/questions/2880936/how-to-increase-error-limit-in-visual-studio) でハードコーディングされている可能性が最も高いです。

ところで。コード (エンティティなどのクラス) は問題なく生成されます。

ですから、問題は次のとおりです。ログなどを表示する方法はありますか?エンティティ フレームワークのデータ モデル デザイナーが何もレンダリングできない理由はどこにあるのでしょうか?

または、残りのエラー (100 個のエラー以外) を表示する方法が少なくともいくつかありますか?

または、ウィザードを使用する以外に、EF でスキーマを更新する理想的な方法を知っている人はいますか?

4

2 に答える 2

0

最後に、 xmlを編集して手動ですべての変更を行いました。ただし、モデル デザイナー (VS for EF に統合された GUI) を使用して、CSDL レイヤー全体を作成しました。したがって、私のアプローチは、正しい順序で慎重にテーブルを選択し、次の手順を複数回繰り返して 1 つずつ追加することでした。

  1. モデル デザイナーを使用して、既存のテーブルとのすべての関係を含む、選択したテーブルの csdl レイヤーを作成します。これにより、デザイナーが後で使用できるようになり、CSDL オブジェクトを手動で作成する手間が省けます。

  2. DB テーブルを反映する必要がある SSDL レイヤーを書き込みます。

  3. マッピング レイヤーを記述します (私の場合は QueryViews を使用します)。

  4. コンパイルして、すべてのコンパイル エラーを解決してください。

  5. 次のテーブル (または、より簡単な場合はさらに多くのテーブル) に対して繰り返します。

これが誰かに役立つことを願っています。

于 2013-02-17T14:58:50.987 に答える