我是一个很长时间的开发者,但仍然是LINQ的新手。在处理一组对象时我很好,但是当我需要从多个来源获取时,事情变得更加困难,我可以使用一些指导来获得我需要的东西。
我的数据库中有三个表,两个相关表,另一个持有PK / FK将它们绑在一起。如下所示:
用户
调查
UserSurveys
我正在使用 EF ,因此所有这些数据都被提取到了对象中。
所以...我想要做的是返回与给定用户关联的所有调查的列表。所以像(伪代码):
// currentUserID = the UserID I need to get matching Surveys for
var surveys = from Survey where (s => s.SurveyID == UserSurvey.SurveyID && UserSurvey.UserID == currentUserID);
我假设我需要创建一个子查询并使用Contains()或类似的东西,但我不断绊倒自己。帮助
答案 0 :(得分:2)
应该是这样的:
from us in UserSurveys
where us.UserId == currentUserID
join s in Surveys on us.SurveyID equals s.SurveyID
select s
答案 1 :(得分:2)
如果这是EF,您应该可以someUser.Surveys
。
答案 2 :(得分:1)
假设您的数据库和实体模型包含所有FK引用,您应该可以执行此类操作....
// currentUserID = the UserID I need to get matching Surveys for
var surveys = from s in Survey
where s.User.UserID == currentUserID
select s;