我有以下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”中的所有记录。可能导致冗余的表,因为其他表的大多数时间都不需要所有行。为了获得更好的性能,我最好能做到这一点吗?
答案 0 :(得分:5)
简单:将示例中显示的每个地方的IEnumerable
更改为IQueryable
。任务完成。然后它可以组成TSQL而不是内存。例如,您的计数可能导致所有内容都通过电汇而不是发出select count(1)