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

本文关键字:更好 性能 LINQ Select 语句 优化 | 更新日期: 2023-09-27 18:05:09

我有以下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();
     }
 }

我不太擅长这个。我只是觉得静态方法"Select()"将拉出"UserPrivilege"表中的整个记录,这可能会导致冗余,因为不是所有的行都需要大多数时间用于其他表。我怎样才能做到最好以获得更好的性能?

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

简单:将示例中每个位置的IEnumerable更改为IQueryable。工作。然后它可以作为TSQL而不是在内存中编写。例如,您的计数可能导致所有内容都通过电线,而不是发出select count(1)