在 Grid.Mvc 方面需要帮助。我正在传递IQueryable
由实体框架生成的集合并获得异常
动作方法:
public ActionResult Index(int id)
{
IQueryable<Document> documents = _dbContext.Document;
var model = new DocumentListViewModel()
{ Documents = documents
};
return View(model);
}
文档列表视图模型:
public class DocumentListViewModel
{
public IQueryable<Document> Documents { get; set; }
}
看法:
@model CompanyName.DocFlow.Web2.Models.DocumentListViewModel
@using GridMvc.Html;
@Html.Grid(Model.Documents).Columns(columns =>
{
columns.Add(x => x.CreatedDate).Titled("Дата");//.Filterable(true);
columns.Add(x => x.IncomingNumber).Titled("Входящий номер");//.Filterable(true);
columns.Add(x => x.Description).Titled("Краткое описание");
}).WithPaging(10)
例外:
EntityFramework.SqlServer.dll 中出现“System.NotSupportedException”类型的异常,但未在用户代码中处理
附加信息:仅 LINQ to Entities 中的排序输入支持“跳过”方法。必须在方法“Skip”之前调用方法“OrderBy”。
该文档指出:
如果您的数据源是数据库(例如),您需要将 IQueryable 集合传递给网格。Grid.Mvc 使用 IQueryable 接口为您的数据集合构造查询表达式。
当您转到某个页面时,网格会调用 .Skip(N).Take(N) 方法,当您对数据进行排序时,网格会调用 OrderBy 或 OrderByDescending 方法等。
教程链接:Grid.Mvc