Grid.Mvc +实体框架异常
问题描述:
需要Grid.Mvc帮助。我路过实体框架生产IQueryable
收集和获取异常Grid.Mvc +实体框架异常
操作方法:
public ActionResult Index(int id)
{
IQueryable<Document> documents = _dbContext.Document;
var model = new DocumentListViewModel()
{ Documents = documents
};
return View(model);
}
DocumentListViewModel:
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)
例外:
“System.NotSupportedException”类型的异常出现在EntityFramework.SqlServer.dll但在用户代码中没有处理
附加信息:方法“跳过”仅支持在LINQ到实体排序输入。方法'OrderBy'必须在方法'Skip'之前调用。
的文档状态:
如果数据源是数据库(例如),你需要的IQueryable收集传递给电网。 Grid.Mvc使用IQueryable接口为您的数据集合构建查询表达式。
当你去一些页面网格调用.Skip(N)。取(N)的方法和当你整理数据网格调用排序依据或OrderByDescending方法等
教程链接:Grid.Mvc
答
MVC网格说明:
当你去一些页面网格调用.Skip(N)。取(N)的方法和 当你排序个数据Ë电网调用排序依据或OrderByDescending 方法等
你可以做排序过程中封装字段get方法也可以在ActionResult的方法做同样的操作
示例代码:
public class DocumentListViewModel
{
private IQueryable<Document> _Documents;
public IQueryable<Document> Documents
{
get
{
return _Documents.Ordery(x=>x.Id);
}
set
{
_Documnets = value;
}
}
}
或
public ActionResult Index(int id)
{
IQueryable<Document> documents = _dbContext.Document.OrderBy(x=>x.Id);
var model = new DocumentListViewModel()
{
Documents = documents
};
return View(model);
}
*当你去到网格调用.Skip(N).Take(N)方法的一些页面,当你对数据进行排序时,网格会调用OrderBy或OrderByDescending方法等等。它只是说你必须使用'OrderBy'或'OrderByDescending' –
格网渲染时会出现异常 – user3373603
你是否在代码中的任何地方使用过'OrderBy'或'OrderByDescending'? –