优化LINQ Select语句以获得更好的性能

时间:2014-05-26 21:02:34

标签: c# asp.net linq

我有以下Linq代码

   public partial class DBClass
    {
      public static IEnumerable<UserPrivilege> Select()
      {
        DataClassesDataContext db = new DataClassesDataContext();

        return db.UserPrivileges;
      }

     public static IEnumerable<UserPrivilege> SelectPage(int startRowIndex, int maximumRows)
     {
       return Select().Skip(startRowIndex).Take(maximumRows);
     }

     public static int SelectCount()
     {
       return Select().Count();
     }

 }

我并不擅长这个。我只觉得静态方法&#39; Select()&#39;将拉出“UserPrivilege”中的所有记录。可能导致冗余的表,因为其他表的大多数时间都不需要所有行。为了获得更好的性能,我最好能做到这一点吗?

1 个答案:

答案 0 :(得分:5)

简单:将示例中显示的每个地方的IEnumerable更改为IQueryable。任务完成。然后它可以组成TSQL而不是内存。例如,您的计数可能导致所有内容都通过电汇而不是发出select count(1)