私のアプリケーションは以下のエンティティモデルであり、Dapper を使用しています
public class Goal
{
public string Text { get; set; }
public List<SubGoal> SubGoals { get; set; }
}
public class SubGoal
{
public string Text { get; set; }
public List<Practise> Practices { get; set; }
public List<Measure> Measures { get; set; }
}
以下のようなリポジトリがあります
public interface IGoalPlannerRepository
{
IEnumerable<Goal> FindAll();
Goal Get(int id);
void Save(Goal goal);
}
以下の2つのシナリオに出くわしました
- データ (目標エンティティ) を取得する際に、階層内のすべての関連オブジェクトを取得する必要があります (すべてのサブ目標とプラクティスおよびメジャー)
- 目標が保存されると、すべての関連データを挿入および/または更新する必要があります
コレクションを「ループスルー」して大量のSQLクエリを作成する以外に、これらのシナリオを処理するためのより良い方法があることを提案してください。