Zrobiłem niektóre TDD przeciwko niektórych istniejących procedur przechowywanych. Zwracają XML, więc używam LINQ do XML.Jak sortować w .NET Tak jak w przypadku sortowania SQL Server?
W tej chwili pracuję nad testem, który udowodni, że dane zostały odpowiednio posortowane. Test przechodzi przez XML i tworzy IEnumerable anonimowego typu zawierającego trzy kolumny, które powinny być posortowane. Z tym, że tworzy drugi IEnumerable sortując pierwszy:
var sortedColumns = from g in columns
orderby g.ColumnA ascending,
g.ColumnB ascending,
g.ColumnC ascending
select g;
Wreszcie stwierdza, że posortowanych colums są takie same jak te z użyciem SequenceEquals nieposortowane.
Problem występuje, gdy sortowanie w bazie danych różni się od bieżącego sortowania. W szczególności .NET umieszcza "W-" przed "Wa" w kolumnie B.
Czy istnieje sposób sortowania w tej samej kolejności, co arbitralne sortowanie programu SQL Server? Jeśli nie, to w jaki sposób mogę sortować w tej samej kolejności, co SQL_Latin1_General_CP1_CI_AS?
Powiązane pytania: http://stackoverflow.com/questions/11562042/achieving-consistent-sorting-between-c-sharp-and-sql-using-collationinfo-compare, http://stackoverflow.com/questions/ 9384642/what-net-string-compcomprown-is-equivalent-sqls-latin1-general-ci-as, http://stackoverflow.com/questions/5581268/custom-collation-ordering –