在项目中,利用OrderBy/OrderByDescending, ThenBy/ThenByDescending这4个方法排序时,发现了这样的问题:在本机测试,能正确按拼音排序;但是放上服务器是,就不能正确的按拼音排序了。
      原来OrderBy/OrderByDescending, ThenBy/ThenByDescending中若是LinqToSql的话,就需要看下数据库机器得sql是否为中文版的?若数据库是英文版,就有可能出现不能正确的按拼音排序的情况,这时候,可以通过修改数据库属性来达到按拼音正确排序:打开SQL Server Management Studio,选择对应的数据库,右击选择属性(R),点击选项(Options),第一个排序规则(Collation),请选择 Chinese_PRC_CI_AS。

 

PS:

排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。  
  如:  
    Chinese_PRC_CS_AI_WS    
  前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。  
  排序规则的后半部份即后缀   含义:    

_BIN   二进制排序     
    _CI(CS)   是否区分大小写,CI不区分,CS区分   
    _AI(AS)   是否区分重音,AI不区分,AS区分      
    _KI(KS)   是否区分假名类型,KI不区分,KS区分    
       _WI(WS)  是否区分宽度   WI不区分,WS区分


  区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。  
  区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。  
  区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。  
  区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项