Jam*_*lak 5 c# linq linq-to-sql
这个问题(LINQ and a natural sort order\xe2\x80\xa6)讨论如何使用 IComparer 在 Linq 中实现自然排序。我过去曾成功地将其与 IEnumerables 一起使用,但我无法使其在 Linq-to-SQL 表达式中工作。这是因为 Linq-to-SQL 不支持采用 IComparer 的 .OrderBy() 的特定重载吗?
\n\n如果确实如此,是否有任何实际的解决方法?
\n并不是不支持 IComparer,而是在 Linq-to-Sql 中,OrderBy() 必须转换为 T-Sql 操作。如果它允许您指定比较条件,则其背后的 C# 代码必须由 SQL Server 执行才能使用它。
如果您需要在 Linq-To-Sql 中执行不支持但可以在 T-SQL 中完成的操作,则始终可以通过使用存储过程来解决它,该存储过程与 Linq-to-Sql 配合得很好。如果不方便,可以调用ToList()方法调用执行,然后在内存中排序。其实用性取决于数据的大小以及您希望获取的数据量(例如在实现分页时)。
| 归档时间: |
|
| 查看次数: |
1173 次 |
| 最近记录: |