![](/img/trans.png)
[英]LINQ to SQL (NHibernate): OrderBy vs OrderByDescending abstraction
[英]Linq Orderby vs SQL Orderby
我有一个表列(Varchar),其中包含以下数据:
COLUMN_NAME
当我在SQL语句中使用OrderBy时,我按以下顺序获取商品:
COLUMN_NAME
如果我查询数据(数据来自WCF)并使用LINQ OrderBy,则按以下顺序获取商品:
属性名
在SQL和LINQ中,数据“ 1-2000”的顺序似乎有所不同。
我尝试使用StringComparison.Ordinal
和StringComparison.InvariantCulture
,但它似乎仍然不起作用。
请帮助!
由于您的问题被标记为“ Oracle”,因此我想您正在将SQL语句发送到Oracle数据库。
Oracle数据库使用的排序是在“ NLS”设置中定义的。 此设置的默认值取决于Oracle的安装方式以及主机服务器上的操作系统。
此处的更多信息: https : //docs.oracle.com/cd/B28359_01/server.111/b28298/ch5lingsort.htm
以及来自Oracle的非常详细的白皮书: http : //www.oracle.com/technetwork/database/database-technologies/globalization/twp-appdev-linguistic-sorting-10gr2-132064.pdf
提取物:
“西班牙传统上将ch , ll和ñ视为自己的字母,分别在c , l和n之后排序。例如,以下西班牙语单词将按列出的顺序排序:
cabalmente,CABA LL一,酒馆,CA N A,clamar,curador,CH ACARA
最近,这种传统的西班牙分拣做法已被现代西班牙分拣取代,这消除了ch和ll的特殊地位。”
您可以将linq sort方法与顺序StringComparer一起使用
list.Sort(StringComparer.Ordinal);
这给了我您期望的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.