我有一个非常基础的表结构:
dbo.tblCategory
dbo.tblQuestion(与tblCategory存在多对一关系)
dbo.tblAnswer(与tblQuestion存在多对一关系)
基本上,我的目标是在加载类别时,同时加载所有问题和所有答案。
现在,我已经通过以下代码实现了这一点:
public tblCategory Retrieve(int id)
{
using (var entities = Context)
{
var dto =
(from t in entities.tblCategory.Include("tblQuestion")
.Include("tblQuestion.tblAnswers")
where t.Id == id
select t).FirstOrDefault();
return entities.DetachObjectGraph(dto);
}
}
}
然而,我并不完全喜欢这种方式;如果我的模型中的关系名称发生变化,构建项目时将不会出现错误。理想情况下,我希望使用lambda表达式,像这样:
public tblCategory Retrieve(int id)
{
using (var entities = Context)
{
var dto =
(from t in entities.tblCategory.Include(t => t.tblQuestion)
where t.Id == id
select t).FirstOrDefault();
return entities.DetachObjectGraph(dto);
}
}
现在,使用上面的代码片段;我卡在如何深入到Answers表中。你有什么关于这个问题的lambda表达式的想法吗?