jqwidgets网格实体框架LINQ分页

时间:2013-11-01 21:06:17

标签: linq entity-framework

参考以下示例: http://www.jqwidgets.com/jquery-widgets-documentation/documentation/asp.net-integration/asp.net-grid-server-side-paging-sorting-filtering-mvc3.htm

我想知道是否有一种不同的,更通用的方法,从实体框架中提取数据,用于实例化特定模型类的排序,分页,过滤。没有这个:

 var query = Request.QueryString;
 var dbResult = db.Database.SqlQuery<Order>(this.BuildQuery(query));
 var orders = from order in dbResult
              select new Order
              {
                  ShippedDate = order.ShippedDate,
                  ShipName = order.ShipName,
                  ShipAddress = order.ShipAddress,
                  ShipCity = order.ShipCity,
                  ShipCountry = order.ShipCountry
              };

但无论模型是什么,都会是相同的。

我尝试过:

  var orders = db.Orders.AsEnumerable();

然后EF抱怨已经加载的实体。 我需要的东西对于所有只更改SqlQuery的模型都是一样的,我想为Index视图构建一个T4脚手架。

谢谢

1 个答案:

答案 0 :(得分:0)

我对jqwidgets了解不多,但它需要一些数据来配置服务器端的分页和排序。这意味着您需要在serialize中发送一些表示分页排序数据的类。

最简单的看起来像

public class Pager<T>
{
    public int TotalRows { get; set; }
    public List<T> Rows { get; set; }
    public int PageSize { get; set; }
}

对于查询的通用解决方案,您可以创建类似的数据层 正如本文所述

http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application