我正在使用查询从名为customers的表中获取记录,我想按address, housenumber, surname, name
订购记录。
首先使用this (DataTable)
public CustomerInfo.customers GetCustomers(string zipcode) {
string sql = "select id, name, surname, zipcode, housenumber where zipcode = @_zipcode order by address, housenumber, surname, name";
....
}
现在我用这个:
public OrderedEnumerableRowCollection<CustomerInfo.customerRow> GetCustomers(string zipcode) {
string sql = "select id, name, surname, zipcode, housenumber where zipcode = @_zipcode";
....
return (from c in datatable).OrderBy(c => c.Address).ThenBy(....).ThenBy(...);
}
这是提高性能的正确方法吗?
OrderedEnumerableRowCollection
与DataTable
相比有什么(dis)优势?
请让我知道你应该怎么做。
我想说这取决于你的SQL Server索引哪个更快。例如,如果SQL Server被索引,它可以快速排序(或者数据非常小),那么数据表是好的。
我通常期望SQL服务器在这方面比。net代码更有效。
在一般的架构注释上。如果排序是UI关注的问题(如果是的话,从您的问题中不清楚),那么排序客户端更有意义,特别是如果您将在其他地方使用数据表(可能以不同的顺序)。