Mysql
 sql >> база данни >  >> RDS >> Mysql

linq към entity:оптимизиране на производителността на linq заявка

Само едно бързо предположение:Count() и ToList() изпълняват заявката. Първо направете ToList() и използвайте получения списък, за да получите броя на елементите.

Така:

private List<TNews> GetPagedNews(int pagenum, int pagesize,
    AdvSearcherArgs advcArgs, string keyword)
{
    var dataSrc = _dbRawDataContext.TNews.Where(x => x.Id>0);
    if (!string.IsNullOrWhiteSpace(advcArgs.PMAC))
    {
        dataSrc = dataSrc.Where(m => m.Pmac == advcArgs.PMAC);
    }
    if (!string.IsNullOrWhiteSpace(advcArgs.BegineDate))
    {
        var begin = Convertion.ToDate(advcArgs.BegineDate);
        var end = Convertion.ToDate(advcArgs.EndDate);

        dataSrc = dataSrc.Where(m => m.PmacDT >=begin && m.PmacDT<end);
    }
    dataSrc = dataSrc.OrderByDescending(n => n.PmacDT).Skip(pagenum * pagesize).
      Take(pagesize);

    var myList = dataSrc.ToList(); //execute the query to an in-memory list

    var cnt = myList.Count(); //get the count from the already exeuted query
    SetPagerValues(pagenum, pagesize, cnt);

    return myList; //return the list
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ALTER TABLE на много голяма таблица - безопасно ли е да я стартирате?

  2. Получаване на данни от падащо меню за множествен избор с PHP за вмъкване в MySQL

  3. $PATH не се запазва, след като напусна терминала

  4. Как да получите достъп до онлайн база данни mysql в android?

  5. MySQL връща първия ред от обединена таблица