Grid.Mvc に関するヘルプが必要です。IQueryable
Entity Framework によって生成されたコレクションを渡しているのですが、例外が発生します
アクション方法:
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 で発生しましたが、ユーザー コードで処理されませんでした
追加情報: メソッド 'Skip' は、LINQ to Entities の並べ替えられた入力に対してのみサポートされています。メソッド「OrderBy」は、メソッド「Skip」の前に呼び出す必要があります。
ドキュメントには次のように記載されています。
データ ソースがデータベースの場合 (たとえば)、IQueryable コレクションをグリッドに渡す必要があります。Grid.Mvc は IQueryable インターフェイスを使用して、データ コレクションに対するクエリ式を作成します。
あるページに移動すると、グリッドは .Skip(N).Take(N) メソッドを呼び出し、データを並べ替えると、グリッドは OrderBy または OrderByDescending メソッドなどを呼び出します。
チュートリアル リンク: Grid.Mvc