【问题标题】:Selecting several objects based on array of IDs根据 ID 数组选择多个对象
【发布时间】:2012-10-17 19:29:01
【问题描述】:

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

例如:

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

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

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-3 linq entity


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你可以试试这样的:

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

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

      var surveyProgramVar = surveyProgramRepository.FindByProgramsId(resultsviewmodel.ProgramIds);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-02
        • 2016-11-25
        • 2021-10-03
        • 2020-08-01
        • 1970-01-01
        • 2022-01-12
        • 1970-01-01
        相关资源
        最近更新 更多