私のアプリケーションには非常に単純なリポジトリ パターンがありますが、Code First Model といくつかの追加データを返す必要がある異常が発生しました。下記参照。
public IEnumerable<User> GetUsersWithinLocation(DbGeography geography)
返されるモデルに本当に含めたいのは、User インスタンスと、地理からの距離 (マイルなど) です。
ここに私が見るオプションがあります:
オプション 1:距離なしでユーザー オブジェクト リストを返し、フロントエンドで 2 回目の再計算を行い、データ モデルの混乱を避けることができますが、少し冗長に思えます..そして、これは特定の状況では不可能である可能性があり、このアプローチは間違っていると私は感じています。
オプション 2:もう 1 つのオプションは、User から構成されるか、User を継承する新しい DTO を作成することです。たとえば、UserDistance オブジェクトです。これで必要なものはすべて手に入りますが、このために新しいリポジトリを作成しますか? 各モデル タイプで返されるデータのバリエーションが多数ある場合、大規模なアプリケーションでこれを維持するのはやや手に負えないと考えることができます。
オプション 3:ある種の動的な ExtraData ViewBag レイヤーを実装します。ここでは、DTO と共に追加のデータを任意に渡すことができます。名前を知る必要があるため、これによりレイヤー間の結合がより緊密になります。私もこのアプローチはあまり好きではありません。
どんなガイダンスでも大歓迎です。