在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/