私の会社は、Telerik の OpenAccess ORM を使用して新しいプロジェクトを開始しようとしています。これは私たちにとって新しい製品であり、データセット ベースのアプローチではなく、ORM をプロジェクトに初めて使用します。現在、データ層を構築する最善の方法について意見の相違があります。具体的には、プロジェクト用に単一の .rlinq ファイルとドメイン モデルを用意するか、特定の画面/モジュールに必要なテーブルとテーブルの列のみを含む画面/モジュールごとの .rlinq ファイルを用意する必要があります。後者を説明するには:
名、姓、ssn、生年月日、性別、婚姻状況のフィールドを持つ Person テーブルがあるとします。個人情報画面では、これらすべてのフィールドが必要なので、.rlinq ファイルのドメイン モデルにテーブル全体を含めます。別の画面 (別の .rlinq ファイルを使用) では、個人の姓と ssn のみが必要なので、その .rlinq ファイルの Person オブジェクトには姓と ssn のみが含まれます。
この方法の議論は、主に、特定の画面に必要なデータのみを選択する必要があり、それ以上は選択しないというものでした。現在のデータセット ベースのアプリケーションでは、これは理にかなっています。不要なテーブルやリレーションシップがあると、要求されていなくても不要なデータが読み込まれ、ネットワークの負荷がかかるという懸念も表明されています。これに対する議論は、ドメイン モデルを断片化し、不要な複雑さを導入しているというものでした。ORM の仕事の一部は、キャッシングと遅延読み込みを使用してデータ フェッチを管理することです。これについて合意に達することができず、決定的な情報を何らかの方法で見つけることができないため、StackOverflow コミュニティに助けを求めています!
重要な場合は、Windows フォーム ベースのイントラネット アプリを構築しており、データ レイヤーは WCF サービスの背後にあり、データベースには約 100 のテーブルがあります。
よろしくお願いします。