[英]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.