gpt4 book ai didi

c# - 我可以在 Linq-to-SQL 的 .OrderBy() 中使用 IComparer 吗?

转载 作者:行者123 更新时间:2023-11-30 17:21:07 24 4
gpt4 key购买 nike

这个问题 ( LINQ and a natural sort order… ) 讨论了如何使用 IComparer 在 Linq 中实现自然排序。我过去在 IEnumerables 中成功地使用过它,但我无法让它在 Linq-to-SQL 表达式中工作。这是因为 Linq-to-SQL 不支持采用 IComparer 的 .OrderBy() 的特定重载吗?

如果确实如此,是否有任何实际的解决方法?

最佳答案

不是不支持IComparer,而是在Linq-to-Sql中,OrderBy()必须转换为T-Sql操作。如果它允许您指定比较条件,则它背后的 C# 代码必须由 SQL 服务器执行才能使用它。

如果你需要在 Linq-To-Sql 中做一些不受支持但可以在 T-SQL 中完成的事情,你总是可以通过使用存储过程来解决它,它与 Linq-to-Sql 一起工作得很好.如果不方便,可以调用ToList()方法调用执行,然后在内存中排序。这是否实用取决于数据的大小以及您希望获取的数据量(例如在实现分页时)。

关于c# - 我可以在 Linq-to-SQL 的 .OrderBy() 中使用 IComparer 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3713357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com