Guest User

Untitled

a guest
Dec 15th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })
  2.  
  3. Var movies = _db.Movies.OrderBy(c => c.Category).ThenBy(n => n.Name)
  4.  
  5. var movies = from row in _db.Movies
  6. orderby row.Category, row.Name
  7. select row;
  8.  
  9. var movies = from row in _db.Movies
  10. orderby row.Category descending, row.Name
  11. select row;
  12.  
  13. var movies = _db.Movies.OrderBy( m => new { m.CategoryID, m.Name })
  14.  
  15. var movies = _db.Movies.OrderBy( m => (m.CategoryID.ToString() + m.Name))
  16.  
  17. _db.Log = Console.Out
  18.  
  19. var movies = from row in _db.Movies
  20. orderby row.CategoryID, row.Name
  21. select row;
  22.  
  23. var movies = _db.Movies.OrderBy(m => m.CategoryID).ThenBy(m => m.Name);
  24.  
  25. SELECT [t0].ID, [t0].[Name], [t0].CategoryID
  26. FROM [dbo].[Movies] as [t0]
  27. ORDER BY [t0].CategoryID, [t0].[Name]
  28.  
  29. var movies = from row in _db.Movies
  30. orderby row.CategoryID
  31. orderby row.Name
  32. select row;
  33.  
  34. var movies = _db.Movies.OrderBy(m => m.CategoryID).OrderBy(m => m.Name);
  35.  
  36. SELECT [t0].ID, [t0].[Name], [t0].CategoryID
  37. FROM [dbo].[Movies] as [t0]
  38. ORDER BY [t0].[Name], [t0].CategoryID
  39.  
  40. public class MovieComparer : IComparer<Movie>
  41. {
  42. public int Compare(Movie x, Movie y)
  43. {
  44. if (x.CategoryId == y.CategoryId)
  45. {
  46. return x.Name.CompareTo(y.Name);
  47. }
  48. else
  49. {
  50. return x.CategoryId.CompareTo(y.CategoryId);
  51. }
  52. }
  53. }
  54.  
  55. var movies = _db.Movies.OrderBy(item => item, new MovieComparer());
  56.  
  57. // We do not have to care if the queryable is already sorted or not.
  58. // The order of the Smart* calls defines the order priority
  59. queryable.SmartOrderBy(i => i.Property1).SmartOrderByDescending(i => i.Property2);
  60.  
  61. public static class IQueryableExtension
  62. {
  63. public static bool IsOrdered<T>(this IQueryable<T> queryable) {
  64. if(queryable == null) {
  65. throw new ArgumentNullException("queryable");
  66. }
  67.  
  68. return queryable.Expression.Type == typeof(IOrderedQueryable<T>);
  69. }
  70.  
  71. public static IQueryable<T> SmartOrderBy<T, TKey>(this IQueryable<T> queryable, Expression<Func<T, TKey>> keySelector) {
  72. if(queryable.IsOrdered()) {
  73. var orderedQuery = queryable as IOrderedQueryable<T>;
  74. return orderedQuery.ThenBy(keySelector);
  75. } else {
  76. return queryable.OrderBy(keySelector);
  77. }
  78. }
  79.  
  80. public static IQueryable<T> SmartOrderByDescending<T, TKey>(this IQueryable<T> queryable, Expression<Func<T, TKey>> keySelector) {
  81. if(queryable.IsOrdered()) {
  82. var orderedQuery = queryable as IOrderedQueryable<T>;
  83. return orderedQuery.ThenByDescending(keySelector);
  84. } else {
  85. return queryable.OrderByDescending(keySelector);
  86. }
  87. }
  88. }
Add Comment
Please, Sign In to add comment