1

我有一个 ProgramID 数组,并希望根据有多少 ProgramId 动态创建许多 Select 语句。

例如:

  var surveyProgramVar = surveyProgramRepository.Find().Where(x => x.ProgramId == resultsviewmodel.ProgramIds.FirstOrDefault());

这是一个使用单个 ProgramId.FirstOrDefault() 的 select 语句示例。如何创建 SurveyProgramVars 列表/数组并为数组中的每个 ProgramIds 选择?

4

2 回答 2

0

它不一定是最佳的,但您可以尝试:

var surveyProgramVar = surveyProgramRepository.Find()
                       .Where(x => resultsviewmodel.ProgramIds.Contains(x.ProgramId));
于 2012-10-17T19:31:37.547 回答
0

您可以尝试以下方法:

var surveyProgramVar = surveyProgramRepository.Find().Where(x => resultsviewmodel.ProgramIds.Contains(x.ProgramId));

提示:如果该方法对数据库产生了影响,那么如果您为查询的语句Find()创建一个特定的方法会很好。IN如果您不这样做,它将获取表上的所有记录并将其过滤到内存中(linq to objects),这可以工作但不是很好。您的代码可能类似于:

var surveyProgramVar = surveyProgramRepository.FindByProgramsId(resultsviewmodel.ProgramIds);
于 2012-10-17T19:32:07.103 回答