0

次の例を参照して ください。

特定のモデル クラスをインスタンス化するのではなく、並べ替え、ページング、フィルタリングのために Entity Framework からデータを引き出す別の、より一般的な方法があるかどうか疑問に思っていました。これを持っていない:

 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 足場を構築したいと考えています。

ありがとうございました

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 に答える