2016-09-06 120 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); 
} 
相關問題