0

ASP.NET MVC 3 のアプリがありますが、レガシーと移植の理由により、データ レイヤーに従来の ADO.NET を使用して完全に記述されています。

私は現在、この Web サイトにいくつかのレポートを追加する任務を負っていますが、レポートによって非常に複雑なクエリが発生する可能性があります。

EF Power Tools を使用してコード ファースト モデルをリバース エンジニアリングし、それを現在の ADO.NET モデルと並べて使用することに落とし穴はありますか? そうすることで、必要なデータのクエリに LINQ を使用できるようになり、各レポートの作成に必要な時間が大幅に短縮されます。現在のモデルでそれを行っているため、データ コンテキストの初期化を停止する必要がありますが、これを行うことに関連する明らかなリスクや問題はありますか?

関連性がある場合 (EF 5 には大量の新機能があることは知っています)、私たちは .NET 4 を使用しており、.NET 4.5 がリリースされ次第、.NET 4.5 への移行を開始します。

4

1 に答える 1

0

これは非常に理にかなった行為だと思います。また、データベースが変更されるたびに更新でき、データベースを初期化しようとしない、データベース ファースト モデルを使用することもできます。

コンテキストを読み取り専用で使用するため、s のMergeOptionプロパティを に設定することでクエリ プロセスを最適化できます。コンテキストは生成されたオブジェクトの変更を追跡しないため、これによりオーバーヘッドが削減されます。ObjectQueryMergeOption.NoTracking

問題は、データベースが変更された場合により多くのメンテナンスが必要になることかもしれませんが、古いデータ レイヤーをレポートするためのボイラープレート クエリ コードの壁がないことは、それをはるかに上回っていると思います。

いつの日か :) EF モデルを使用して、ユーザーが UI でフィルター処理したいデータを表示し、CUD コマンドに古いデータ レイヤーを使用することさえ決定するかもしれません。(CQRSに少し似ています)。

于 2012-06-07T14:56:57.177 に答える