2

EF 5 とコードを最初に使用して、非常に優れた Web アプリを開発しました。しかし、ベンチマークを実行しているときに、パフォーマンスが思ったほど良くないことがわかりました...さらに調べてみると、EF が生成するすべてのクエリが類似してSelect * Fromおり、それはベスト プラクティスではないことがわかりました。

ここでこの回答を読むEFコードを使用してデータベースから特定の列を選択する まず、ビューを生成してエンティティにマップできることを理解しました。私の質問は、最初に EF 5 コードを使用してビューをエンティティに、またはその逆にマップするにはどうすればよいですか?

私がこれを尋ねている理由は次のとおりです。私は名前で「予備検索」検索項目を実行する非常に広いテーブルを持っています。ほとんどの場合、タイトルと説明のみを使用し、LOB 列は使用しません...すべてのケースで、使用していないデータベースから何かを取得しています...

したがって、実際にビューをエンティティに、またはその逆にマッピングできれば、バックボーンとアプリケーション層の間の帯域幅を大幅に節約できます...

4

2 に答える 2

0

私がそれを達成する方法はあまりきれいではありませんが:

  • 型を作ります
  • タイプの dbset を宣言する
  • 必要に応じてテーブルをデータベースにドロップします
  • 削除されたテーブルと同じ名前のビューを、同じフィールド (タイプと名前) で作成します。

もちろん、これらはすべてシード メソッドにカプセル化されています。

きれいではありませんが、実行されています。ビューの構造を「移行」したい場合、いくつかの問題が発生すると思います。しかし、この方法では、エンティティを取得するのとほとんど同じです。もちろん、挿入と更新は微妙かもしれませんが、これは私の目的ではありません。

命名規則を尊重すれば、ロード戦略も利用できます。

于 2013-04-02T21:29:28.653 に答える