【发布时间】:2013-03-15 17:59:27
【问题描述】:
我在设计一个查询来检索候选人已经尝试过的问题以及另一个查询候选人没有尝试过的问题时遇到了太多麻烦。这是用于考试/测试/表格/调查类型的应用程序。
场景是一个候选(OAS_UserDetail)与许多组(OAS_Group)相关联。 一组可以有许多测试。 一个测试可以有很多问题。 一个问题可以有很多选项。
当候选人尝试提问时,它会存储在表 TestResponse 中,并引用会话,(表 TestResponse 中的 answerSelected 实际上是 QuestionOption.Id)。我相信TestSession可以作为TestResponse获取用户、测试和组详细信息的桥梁。
在我看来,就通过 Linq 进行查询而言,这对我来说是一个不错但有点复杂的设计。 以下是我尝试做的事情并被卡住并最终用方法语法而不是查询语法编写 Linq。
OAS.DataModels.OAS_Question questionsAttempted =
from q in db.OAS_Questions
where q.OAS_Test.OAS_Group.Candidates.Contains(
db.OAS_UserDetails.Single(u => u.UserName == HttpContext.User.Identity.Name)
)
select q;
【问题讨论】:
标签: c# .net linq linq-to-entities entity-framework-5