我的应用程序是如下的实体模型并使用 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);
}
我遇到了以下两种情况
- 在检索数据(目标实体)时,它需要检索层次结构中的所有相关对象(所有子目标以及实践和措施)
- 保存目标后,需要插入和/或更新所有相关数据
请建议是否有更好的方法来处理这些场景,而不是“循环”集合和编写大量的 SQL 查询。