sql >> Database teknologi >  >> RDS >> Sqlserver

Entity Framework/Linq til SQL:Skip &Take

Følgende virker og opnår den enkelhed, jeg ledte efter:

public IEnumerable<Store> ListStores(Expression<Func<Store, string>> sort, bool desc, int page, int pageSize, out int totalRecords)
{
    List<Store> stores = new List<Store>();
    using (var context = new TectonicEntities())
    {
        totalRecords = context.Stores.Count();
        int skipRows = (page - 1) * pageSize;
        if (desc)
            stores = context.Stores.OrderByDescending(sort).Skip(skipRows).Take(pageSize).ToList();
        else
            stores = context.Stores.OrderBy(sort).Skip(skipRows).Take(pageSize).ToList();
    }
    return stores;
}

Den vigtigste ting, der fiksede det for mig, var at ændre Func sort-parameteren til:

Expression<Func<Store, string>> sort


  1. cx_Oracle:Brug af PL/SQL RECORD-typer som argumenter til lagrede procedurer

  2. Sådan bruger du trigger i MySql til at lave fremmednøgle

  3. MySQL Leder efter gratis værelser i reservationssystem

  4. Design af en Microsoft T-SQL Trigger