I've got this really basic table structure:
dbo.tblCategory
dbo.tblQuestion (many to one relationship to tblCategory)
dbo.tblAnswer (many to one relationship to tblQuestion)
So basically, what I'm trying to do is when I load a category, I want to also load all Questions, and all Answers.
Now, I've been able to do this using the following code:
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);
}
}
}
However, I'm not completely enamored with this; if the relationship names change in my model; I'm not going to get a error when building the project. Ideally, I'd like to use a lambda expression; something like this:
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);
}
}
Now, with the above snippet; I'm stuck on how to drill down to the Answers table. Any idea on what I could use for a lambda expression for this one?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…