Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.40 KB | None | 0 0
  1. MiniWiki for DynamicLinq
  2.  
  3. Примитивные типы:
  4.  
  5. Object Boolean Char String SByte Byte
  6. Int16 UInt16 Int32 UInt32 Int64 UInt64
  7. Decimal Single Double DateTime TimeSpan Guid
  8.  
  9. ----------------------------------------------------------------------------------------------------------------------------------------------
  10. | Унарные -x Поддерживаемые типы Int32, Int64, Decimal, Single, and Double. |
  11. ----------------------------------------------------------------------------------------------------------------------------------------------
  12. | Операции !x Логическое отрицание. Операнд должен быть типа Boolean. |
  13. | not x |
  14. ----------------------------------------------------------------------------------------------------------------------------------------------
  15. | Мультипли x * y Умножение. Поддерживаемые типы Int32, UInt32, Int64, UInt64, Decimal, Single, and Double. |
  16. | кативные x / y Деление. Поддерживаемые типы Int32, UInt32, Int64, UInt64, Decimal, Single, and Double. |
  17. | x % y Остаток от деления. Поддерживаемые типы Int32, UInt32, Int64, |
  18. | x mod y UInt64, Decimal, Single, and Double. |
  19. ----------------------------------------------------------------------------------------------------------------------------------------------
  20. | Аддитивные x + y Сложение или конкатенация строк. Можно применять для сложения двух операнд с типом String. |
  21. | Поддерживаемые типы Int32, UInt32, Int64, UInt64, Decimal, Single, Double, DateTime, and TimeSpan. |
  22. | x – y Вычитание.Поддерживаемые типы Int32, UInt32, Int64, UInt64, Decimal, Single, Double, DateTime, and TimeSpan.|
  23. | x & y Конкатенация строк. Операнды могут быть любого типа.
  24. ----------------------------------------------------------------------------------------------------------------------------------------------
  25. | Отношения x = y Равно. Поддерживаются ссылочные и примитивные типы. Присваивание не поддерживается. |
  26. | x == y |
  27. | x != y Не равно. Поддерживаются ссылочные и примитивные типы. |
  28. | x <> y |
  29. | x < y Меньше. Поддерживаются примитивные типы, кроме Boolean, Object and Guid. |
  30. | x > y Больше. Поддерживаются примитивные типы, кроме Boolean, Object and Guid. |
  31. | x <= y Меньше или равно. Поддерживаются примитивные типы, кроме Boolean, Object and Guid. |
  32. | x >= y Больше или равно. Поддерживаются примитивные типы, кроме Boolean, Object and Guid. |
  33. ----------------------------------------------------------------------------------------------------------------------------------------------
  34. | Логич. AND x && y Оператор AND. Операнды должны быть типа Boolean. |
  35. | x and y |
  36. ----------------------------------------------------------------------------------------------------------------------------------------------
  37. | Логич. OR x || y Оператор OR. Операнды должны быть типа Boolean. |
  38. | x or y |
  39. ----------------------------------------------------------------------------------------------------------------------------------------------
  40. | Условный x ? y : z Равно y если x = true, равно z если x = false. |
  41. | iif(x, y, z) Условное выражение. Альтернативный синтаксис x ? y : z. |
  42. ----------------------------------------------------------------------------------------------------------------------------------------------
  43.  
  44. Важно! Имена полей не должны быть идентичны именам структур или ключевым словам C#.
  45. Пример аналогичного имени:
  46. {
  47. WhereParams: "Id < 2 && @DateTime = DateTime(2001, 1, 1, 0, 25, 08)"
  48. }
  49. В данном случае ипользуем @.
  50.  
  51. Пример запроса со сравнением Guid:
  52. {
  53. SelectParams: "Id, Name",
  54. WhereParams: "GuidFiled = Guid(\"193ebc39-e4ee-46e1-9b9a-8aacaaeca288\") AND Name = \"User\"",
  55. SortParams: "Id asc, Name Desc"
  56. }
  57.  
  58. Пример запроса с выборкой даты:
  59. {
  60. SelectParams: "Id, Name",
  61. WhereParams: "Id > 2 && Date >= DateTime(2007, 1, 1)",
  62. SortParams: "Id asc, Name descending"
  63. }
  64.  
  65. Есть возможность использовать поиск по строковым полям значений. По аналогии с командой LIKE
  66. Пример LIKE:
  67. {
  68. WhereParams: "Name.StartsWith(\"x\") OR Name.EndsWith(\"2\") OR Name.Contains(\"3\")"
  69. }
  70.  
  71. Пример конкатенации строк:
  72. {
  73. WhereParams = $"Name == \"x\"& \"1\""
  74. }
  75.  
  76. Можно создавать различные условия для полей
  77.  
  78. {
  79. WhereParams: "Field1.String == Field2.String + Field3.String"
  80. }
  81.  
  82. Можно сравнить два поля. Если 2 е поле можно преобразовать в тип первого.
  83. Field1.Int32 = Convert.ToInt32(Field2)
  84. Пример:
  85. {
  86. WhereParams: "Id.Int32 == Balance.Double"
  87. }
  88. Возможно использование математической библиотеки Math
  89. {
  90. WhereParams: "Id < Math.PI"
  91. }
  92.  
  93. Пример использования условного x ? y : z :
  94. {
  95. WhereParams = "Name = (Name.StartsWith(\"x\")?\"x1\":\"User\") AND Id != -{userId}"
  96. }
  97.  
  98. Пример академического плана:
  99. {
  100. WhereParams = "Name = (Name.StartsWith(\"x\")?\"x1\")\":\"{nameof(user.Name)}\") && Id <> -(2*3)"
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement