在MVC应用程序中从视图向控制器返回IQueryable对象时出现错误

public partial class Course_Services
{
    #region Process All Courses Application's URL
    public IQueryable<CourseInstanceModel> ProcessAllCoursesApplicationURL(CourseApplicationsURLFeed_Model _obj)
    {
        IQueryable<CourseInstanceModel> ListOfCoursesInstances;

        //get all the courses which have Application URL is Null..
        using(var _uof = new Courses_UnitOfWork())
        {
            ListOfCoursesInstances = _uof.CourseInstances_Repository.GetAll();

          var _listOfCoursesWithoutURL = from b in ListOfCoursesInstances
                                           where b.ApplicationURL == null
                                           select ListOfCoursesInstances;

          return _listOfCoursesWithoutURL;
        }
    }
    #endregion
}

我正在努力了解自己在哪里犯错。提前谢谢了

最佳答案

您选择的是错误的东西。您应该选择在此处创建的b变量。

var _listOfCoursesWithoutURL = from b in ListOfCoursesInstances
                               where b.ApplicationURL == null
                               select b;


您现在拥有的方式是让它为该列表中的每个单个元素选择一次ListOfCoursesInstances。由于ListOfCourseInstances本身就是IQueryable<CourseInstanceModel>,这意味着您将返回IQueryable<IQueryable<CourseInstanceModel>>,这对于您所拥有的方法无效,该方法仅返回IQueryable<CourseInstanceModel>

或者,您也可以执行@Steve在注释中写的内容,即:

return ListOfCoursesInstances.Where(x => x.ApplicationURL == null);


这使用LINQ的扩展方法而不是常规语法来执行相同的操作。这只是个人喜好问题。

关于c# - 将类对象的IQueryable从 View 发送到 Controller 类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27987229/

10-17 01:19