Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MiniWiki for DynamicLinq
- Примитивные типы:
- Object Boolean Char String SByte Byte
- Int16 UInt16 Int32 UInt32 Int64 UInt64
- Decimal Single Double DateTime TimeSpan Guid
- ----------------------------------------------------------------------------------------------------------------------------------------------
- | Унарные -x Поддерживаемые типы Int32, Int64, Decimal, Single, and Double. |
- ----------------------------------------------------------------------------------------------------------------------------------------------
- | Операции !x Логическое отрицание. Операнд должен быть типа Boolean. |
- | not x |
- ----------------------------------------------------------------------------------------------------------------------------------------------
- | Мультипли x * y Умножение. Поддерживаемые типы Int32, UInt32, Int64, UInt64, Decimal, Single, and Double. |
- | кативные x / y Деление. Поддерживаемые типы Int32, UInt32, Int64, UInt64, Decimal, Single, and Double. |
- | x % y Остаток от деления. Поддерживаемые типы Int32, UInt32, Int64, |
- | x mod y UInt64, Decimal, Single, and Double. |
- ----------------------------------------------------------------------------------------------------------------------------------------------
- | Аддитивные x + y Сложение или конкатенация строк. Можно применять для сложения двух операнд с типом String. |
- | Поддерживаемые типы Int32, UInt32, Int64, UInt64, Decimal, Single, Double, DateTime, and TimeSpan. |
- | x – y Вычитание.Поддерживаемые типы Int32, UInt32, Int64, UInt64, Decimal, Single, Double, DateTime, and TimeSpan.|
- | x & y Конкатенация строк. Операнды могут быть любого типа.
- ----------------------------------------------------------------------------------------------------------------------------------------------
- | Отношения x = y Равно. Поддерживаются ссылочные и примитивные типы. Присваивание не поддерживается. |
- | x == y |
- | x != y Не равно. Поддерживаются ссылочные и примитивные типы. |
- | x <> y |
- | x < y Меньше. Поддерживаются примитивные типы, кроме Boolean, Object and Guid. |
- | x > y Больше. Поддерживаются примитивные типы, кроме Boolean, Object and Guid. |
- | x <= y Меньше или равно. Поддерживаются примитивные типы, кроме Boolean, Object and Guid. |
- | x >= y Больше или равно. Поддерживаются примитивные типы, кроме Boolean, Object and Guid. |
- ----------------------------------------------------------------------------------------------------------------------------------------------
- | Логич. AND x && y Оператор AND. Операнды должны быть типа Boolean. |
- | x and y |
- ----------------------------------------------------------------------------------------------------------------------------------------------
- | Логич. OR x || y Оператор OR. Операнды должны быть типа Boolean. |
- | x or y |
- ----------------------------------------------------------------------------------------------------------------------------------------------
- | Условный x ? y : z Равно y если x = true, равно z если x = false. |
- | iif(x, y, z) Условное выражение. Альтернативный синтаксис x ? y : z. |
- ----------------------------------------------------------------------------------------------------------------------------------------------
- Важно! Имена полей не должны быть идентичны именам структур или ключевым словам C#.
- Пример аналогичного имени:
- {
- WhereParams: "Id < 2 && @DateTime = DateTime(2001, 1, 1, 0, 25, 08)"
- }
- В данном случае ипользуем @.
- Пример запроса со сравнением Guid:
- {
- SelectParams: "Id, Name",
- WhereParams: "GuidFiled = Guid(\"193ebc39-e4ee-46e1-9b9a-8aacaaeca288\") AND Name = \"User\"",
- SortParams: "Id asc, Name Desc"
- }
- Пример запроса с выборкой даты:
- {
- SelectParams: "Id, Name",
- WhereParams: "Id > 2 && Date >= DateTime(2007, 1, 1)",
- SortParams: "Id asc, Name descending"
- }
- Есть возможность использовать поиск по строковым полям значений. По аналогии с командой LIKE
- Пример LIKE:
- {
- WhereParams: "Name.StartsWith(\"x\") OR Name.EndsWith(\"2\") OR Name.Contains(\"3\")"
- }
- Пример конкатенации строк:
- {
- WhereParams = $"Name == \"x\"& \"1\""
- }
- Можно создавать различные условия для полей
- {
- WhereParams: "Field1.String == Field2.String + Field3.String"
- }
- Можно сравнить два поля. Если 2 е поле можно преобразовать в тип первого.
- Field1.Int32 = Convert.ToInt32(Field2)
- Пример:
- {
- WhereParams: "Id.Int32 == Balance.Double"
- }
- Возможно использование математической библиотеки Math
- {
- WhereParams: "Id < Math.PI"
- }
- Пример использования условного x ? y : z :
- {
- WhereParams = "Name = (Name.StartsWith(\"x\")?\"x1\":\"User\") AND Id != -{userId}"
- }
- Пример академического плана:
- {
- WhereParams = "Name = (Name.StartsWith(\"x\")?\"x1\")\":\"{nameof(user.Name)}\") && Id <> -(2*3)"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement