0

参考上的例子: 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,我想为索引视图构建一个 T4 脚手架。

谢谢

4

1 回答 1

0

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

最简单的可能看起来像

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-应用程序

于 2013-11-02T10:48:44.377 回答