0

通常、フォーム アプリケーションでデータベースのデータを操作する場合、データセットまたはデータテーブルにデータを保持し、必要に応じてデータを引き出します。現在、私は WPF を使用しており、MVVM パターンにさらに準拠しようとしています。これらのデータテーブルをオブジェクトに変換すると、MVVM での使用が少し簡単になります。

たとえば、次のようなクエリでテーブルを埋めた場合 - select p.first_name, p.last_name, p.phone,p.email from person as p where p.first_name = 'Bob' データテーブルを保持する代わりに、私はこれを person オブジェクトに変換します。

パフォーマンスの観点から、オブジェクトを作成することの欠点はありますか、それともデータセットとデータテーブルに固執する必要がありますか?

4

2 に答える 2

2

DataTable/DataSet の代わりに EF などの ORM を使用する (または独自に作成する) ことによるパフォーマンスへの影響は、説明しているようなアプリケーションでは無視できますが、実装方法によって異なります。

ORM を使用する主な利点は、型安全性が保証され、DataTable オブジェクトからデータを取得するときに型キャストを実行する必要がないことです。Linq で遅延読み込みを使用する利点もあります。

どこでもエンティティ オブジェクトを使用することが必ずしも解決策になるとは思いません。ViewModel で DataTable オブジェクトを使用することに問題はありません (ただし、DataTable クラスのデータ同期機能に関してどのように使用するかはわかりませんが、まったく使用しないことは自由です)。

新しいプロジェクトでは、入力を処理してもらいたいという理由だけで EF を使用しますが、正常に動作するテーブルを使用する古いプロジェクトがある場合は、そのまま使用します。

于 2012-11-07T21:17:38.517 に答える
1

オブジェクトに必要なフィールドのみが含まれていることを確認し、ソリューションがより明確になる場合はオブジェクトを受け入れます。

最終的なパフォーマンスの低下 (最小限) は、よりクリーンで明確なソリューションの潜在的な長期的なパフォーマンスの利点によって補われます。

于 2012-11-07T21:18:27.600 に答える