我有一个ProgramID数组,想根据有多少ProgramId动态创建一些Select语句。
例如:
var surveyProgramVar = surveyProgramRepository.Find().Where(x => x.ProgramId == resultsviewmodel.ProgramIds.FirstOrDefault());
这是使用单个ProgramId.FirstOrDefault()的select语句的示例。如何创建SurveyProgramVars的列表/数组并为数组中的每个ProgramIds选择?
答案 0 :(得分:0)
它不一定是最佳的,但您可以尝试:
var surveyProgramVar = surveyProgramRepository.Find()
.Where(x => resultsviewmodel.ProgramIds.Contains(x.ProgramId));
答案 1 :(得分:0)
您可以尝试以下方式:
var surveyProgramVar = surveyProgramRepository.Find().Where(x => resultsviewmodel.ProgramIds.Contains(x.ProgramId));
提示:如果Find()
方法对数据库进行了命中,那么如果您创建一个特定方法来查询查询的IN
语句,那就太好了。如果你不这样做,它将占用一个表上的所有记录并在内存中过滤它(linq到对象),这可以工作,但不是很好。您的代码可能类似于:
var surveyProgramVar = surveyProgramRepository.FindByProgramsId(resultsviewmodel.ProgramIds);