私のドメイン モデルには、次のような Entity オブジェクトがあります。
public class Group
{
public int idGroup { get; set; }
public string Description { get; set; }
}
このオブジェクトのリポジトリがあります:
public class GroupRepository : IGroupRepository
{
public Group LoadGroup(int idGroup)
{
//imitation of SQL data reader
Group g = new Group();
g.idGroup = Convert.ToInt32(r["idTipoGrupo"]);
g.Description = Convert.ToString(r["Descricao"]);
return g;
}
}
しかし今、作成したリポジトリの新しい関数を使用して、グループ オブジェクトに関するデータ ストアから追加情報を取得する必要があります。必要なフィールドは次のとおりです。
public bool HasChildGroups { get; set; }
public int ChildGroupsCount { get; set; }
public bool HasDeals { get; set; }
public int DealsCount { get; set; }
これらのプロパティは、私には「サービス」または「ヘルパー」プロパティのように見えます。アプリケーションのどこでも使用するつもりはなく、数回だけ使用する予定ですが、必要です。私が考えることができる最も簡単なことは、これらの「サービス」プロパティを Group オブジェクトに追加し、それらを設定するメソッドをリポジトリに作成したことです。しかし、これはエンティティであり、ここでは必要ないため、これは間違っていると考えています。では、そのような「サービス」オブジェクトはどこに保管すればよいのでしょうか? 次のように継承する新しいクラスを作成する必要がありますかGroup
:
public class GroupHelper : Group
{
public bool HasChildGroups { get; set; }
public int ChildGroupsCount { get; set; }
public bool HasDeals { get; set; }
public int DealsCount { get; set; }
}
または、いくつかのデータ転送オブジェクトの使用を検討する必要がありますか? この問題をどのように解決しますか?どんな助けでも感謝します。