2016-09-06 124 views
0

需要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

+0

*当你去到网格调用.Skip(N).Take(N)方法的一些页面,当你对数据进行排序时,网格会调用OrderBy或OrderByDescending方法等等。它只是说你必须使用'OrderBy'或'OrderByDescending' –

+0

格网渲染时会出现异常 – user3373603

+0

你是否在代码中的任何地方使用过'OrderBy'或'OrderByDescending'? –

回答

2

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); 
} 
相关问题