Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Платформа Entity Framework предоставляет набор канонических функций, которые реализуют операции над строками, математические функции и другую общую функциональность для многих систем баз данных. Это позволяет разработчикам работать с широким кругом систем баз данных. При вызове из технологии запросов (например, из LINQ to Entities) канонические функции преобразуются в соответствующую функцию хранилища для используемого поставщика. Это позволяет для различных источников данных выражать вызовы функций в общей форме, обеспечивая согласованность при применении запросов. Битовые операторы AND, OR, NOT и XOR также сопоставляются с каноническими функциями, если операнд имеет числовой тип. Для операндов логического типа битовые операторы AND, OR, NOT и XOR вычисляют логические операции «И», «ИЛИ», «НЕ» и «Исключающее ИЛИ». Дополнительные сведения см. в разделе "Канонические функции".
Для сценариев LINQ запросы к платформе Entity Framework включают сопоставление определенных методов CLR с методами базового источника данных через канонические функции. Любой вызов метода в запросе LINQ to Entities, который явно не сопоставлен с канонической функцией, приведет к возникновению исключения времени выполнения NotSupportedException.
Метод System.String (статический) – сопоставление
| Метод System.String (статический) | Каноническая функция |
|---|---|
System.String Concat(String str0, String str1) |
Concat(str0, str1) |
System.String Concat(String str0, String str1, String str2) |
Concat(Concat(str0, str1), str2) |
System.String Concat(String str0, String str1, String str2, String str03) |
Concat(Concat(Concat(str0, str1), str2), str3) |
Boolean Equals(String a, String b) |
оператор = |
Boolean IsNullOrEmpty(String value) |
(IsNull(value)) ИЛИ Length(value) = 0 |
Булево op_Equality(String a, String b) |
= оператор |
Boolean op_Inequality(String a , String b) |
!= — оператор |
Microsoft.VisualBasic.Strings.Trim(String str) |
Trim(str) |
Microsoft.VisualBasic.Strings.LTrim(String str) |
Ltrim(str) |
Microsoft.VisualBasic.Strings.RTrim(String str) |
Rtrim(str) |
Microsoft.VisualBasic.Strings.Len(String expression) |
Длина(expression) |
Microsoft.VisualBasic.Strings.Left(String str, Int32 Length) |
Левый(str, Length) |
Microsoft.VisualBasic.Strings.Mid(String str, Int32 Start, Int32 Length) |
Подстрока(str, Start, Length) |
Microsoft.VisualBasic.Strings.Right(String str, Int32 Length) |
Справа(str, Length) |
Microsoft.VisualBasic.Strings.UCase(String Value) |
ToUpper(Value) |
| Microsoft.VisualBasic.Strings.LCase(строковое значение) | ToLower(Value) |
Сопоставление метода System.String (метод экземпляра)
| Метод System.String (экземпляр) | Каноническая функция | Примечания. |
|---|---|---|
Boolean Contains(String value) |
this LIKE '%value%' |
Если value это не константа, то это сопоставляется с IndexOf(this, value) > 0 |
Boolean EndsWith(String value) |
this LIKE '%value' |
Если value не является константой, то он сопоставляется с Right(this, length(value)) = value. |
Boolean StartsWith(String value) |
thisLIKE '%'value |
Если value не является константой, то это соответствует IndexOf(this, value) = 1. |
| Длина | Длина(this) |
|
Int32 IndexOf(String value) |
IndexOf(this, value) — 1 |
|
System.String Insert(Int32 startIndex, String value) |
Concat(Concat(Substring(this, 1, startIndex), value), Substring(this, startIndex+1, Length(this) - startIndex)) |
|
System.String Remove(Int32 startIndex) |
Подстрока(this, 1, startIndex) |
|
System.String Remove(Int32 startIndex, Int32 count) |
Concat(Substring(this, 1, startIndex), Substring(this, startIndex + count +1, Length(this) - (startIndex + count))) |
Remove(startIndex, count) поддерживается, только если count - это неотрицательное целое число. |
System.String Заменить(String oldValue, String newValue) |
Заменить(this, oldValue, newValue) |
|
System.String.Substring(Int32 startIndex) |
Подстрока(this, startIndex +1, Length(this) - startIndex) |
|
Подстрока System.String(Int32 startIndex, Int32 length) |
Подстрока(this, startIndex +1, length) |
|
| System.String ToLower() | ToLower(this) |
|
| System.String ToUpper() | ToUpper(this) |
|
| System.String Trim() - функция для обрезки пробелов в строке | Trim(this) |
|
System.String TrimEnd(Char[] trimChars) |
RTrim(this) |
|
System.String TrimStart(Char[]trimChars) |
LTrim(this) |
|
Boolean Equals(String value) |
= - оператор |
Сопоставление метода System.DateTime (статический)
| Метод System.DateTime (статический) | Каноническая функция | Примечания. |
|---|---|---|
Boolean Equals(DateTime t1, DateTime t2) |
= - оператор | |
| System.DateTime.Now | CurrentDateTime() | |
| System.DateTime.UtcNow | CurrentUtcDateTime() | |
Логическая op_Equality(DateTime d1, DateTime d2) |
оператор = | |
Булев op_GreaterThan(DateTime t1, DateTime t2) |
Оператор > | |
Булево op_GreaterThanOrEqual(DateTime t1, DateTime t2) |
>Оператор = | |
Булевый op_Inequality(DateTime t1, DateTime t2) |
!= - оператор | |
Булево op_LessThan(DateTime t1, DateTime t2) |
Оператор < | |
Булево op_LessThanOrEqual(DateTime t1, DateTime t2) |
<Оператор = | |
| Microsoft.VisualBasic.DateAndTime.DatePart( _ ByVal Interval As DateInterval, _ByVal DateValue As DateTime, _Необязательный ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday, _Необязательный ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1 _) Как целое число |
Дополнительные сведения см. в разделе «Функция DatePart». | |
| Microsoft.VisualBasic.DateAndTime.Now | CurrentDateTime() | |
Microsoft.VisualBasic.DateAndTime.Year(DateTime TimeValue) |
Год() | |
Microsoft.VisualBasic.DateAndTime.Month(DateTime TimeValue) |
Месяц() | |
Microsoft.VisualBasic.DateAndTime.Day(DateTime TimeValue) |
День() | |
Microsoft.VisualBasic.DateAndTime.Hour(DateTime TimeValue) |
Час() | |
Microsoft.VisualBasic.DateAndTime.Minute(DateTime TimeValue) |
Минута() | |
Microsoft.VisualBasic.DateAndTime.Second(DateTime TimeValue) |
Second() |
Отображение метода System.DateTime (экземпляр)
| Метод System.DateTime (экземпляр) | Каноническая функция |
|---|---|
Boolean Equals(DateTime value) |
= - оператор |
| день | День(this) |
| Час | Час(this) |
| Миллисекунда | Миллисекунда(this) |
| Минута | Минута(this) |
| месяц | Месяц(this) |
| Второй | Секунда(this) |
| Год | Год(this) |
Сопоставление метода System.DateTimeOffset (метод экземпляра)
Сопоставление, выводимое для методов get с указанными свойствами.
| Метод System.DateTimeOffset (экземпляр) | Каноническая функция | Примечания. |
|---|---|---|
| день | День(this) |
Не поддерживается для SQL Server 2005. |
| Час | Час(this) |
Не поддерживается для SQL Server 2005. |
| Миллисекунда | Миллисекунда(this) |
Не поддерживается для SQL Server 2005. |
| Минута | Минута(this) |
Не поддерживается для SQL Server 2005. |
| месяц | Месяц(this) |
Не поддерживается для SQL Server 2005. |
| Второй | Секунда(this) |
Не поддерживается для SQL Server 2005. |
| Год | Год(this) |
Не поддерживается для SQL Server 2005. |
Примечание.
Метод Equals возвращает значение true, если сравниваемые объекты DateTimeOffset равны, и значение false в противном случае. Метод CompareTo возвращает 0, 1 или -1 в зависимости от того, равен, больше или меньше сравниваемый объект DateTimeOffset.
Сопоставление метода System.DateTimeOffset (статический)
Сопоставление, выводимое для методов get с указанными свойствами.
| Метод System.DateTimeOffset (статический) | Каноническая функция | Примечания. |
|---|---|---|
| System.DateTimeOffset.Now() | CurrentDateTimeOffset() | Не поддерживается для SQL Server 2005. |
Сопоставление метода System.TimeSpan (экземпляр)
Сопоставление, выводимое для методов get с указанными свойствами.
| Метод System.TimeSpan (экземпляр) | Каноническая функция | Примечания. |
|---|---|---|
| Часы | Час(this) |
Не поддерживается для SQL Server 2005. |
| Миллисекунды | Миллисекунда(this) |
Не поддерживается для SQL Server 2005. |
| Минуты | Минута(this) |
Не поддерживается для SQL Server 2005. |
| секунды | Секунда(this) |
Не поддерживается для SQL Server 2005. |
Примечание.
Метод Equals возвращает значение true, если сравниваемые объекты TimeSpan равны, и значение false в противном случае. Метод CompareTo возвращает значение 0, 1 или -1 в зависимости от состояния объекта TimeSpan (соответственно равен, больше или меньше).
Функция DatePart
Функция DatePart сопоставляется с одной или несколькими каноническими функциями в зависимости от значения Interval. В следующей таблице приведено сопоставление канонических функций для поддерживаемых значений Interval.
| Значение интервала | Каноническая функция |
|---|---|
| ИнтервалДаты.Год | Год() |
| DateInterval.Month | Месяц() |
| ИнтервалДаты.День | День() |
| ИнтервалДаты.Час | Час() |
| DateInterval.Minute | Минута() |
| ИнтервалВремени.Секунда | Second() |
Сопоставление математических функций
| Метод CLR | Каноническая функция |
|---|---|
System.Decimal.Ceiling(Decimal d) |
Потолок(d) |
System.Decimal.Floor(Decimal d) |
Floor(d) |
System.Decimal.Round(Decimal d) |
Округлить(d) |
System.Math.Ceiling(Decimal d) |
Потолок(d) |
System.Math.Floor(Decimal d) |
Floor(d) |
System.Math.Round(Decimal d) |
Округлить(d) |
System.Math.Ceiling(Double a) (Метод который возвращает наименьшее целое число, большее или равное заданному десятичному числу) |
Потолок(a) |
System.Math.Floor(Double a) |
Floor(a) |
System.Math.Round(Double a) |
Округлить(a) |
| System.Math.Round(значение Double, количество знаков Int16) | Round(значение, количество знаков) |
| System.Math.Round(значение Double, количество знаков Int32) | Round(значение, количество знаков) |
| System.Math.Round(значение Decimal, количество знаков Int16) | Round(значение, количество знаков) |
| System.Math.Round(значение Decimal, количество знаков Int32) | Round(значение, количество знаков) |
| System.Math.Abs(значение Int16) | Abs(значение) |
| System.Math.Abs(значение Int32) | Abs(значение) |
| System.Math.Abs(Int64 value) | Abs(значение) |
| System.Math.Abs(значение Byte) | Abs(абсолютное значение) |
| System.Math.Abs(значение Single) | Abs(значение) |
| System.Math.Abs(значение Double) | Abs(значение) |
| System.Math.Abs(Decimal значение) | Abs(значение) |
| System.Math.Truncate(значение Double, количество знаков Int16) | Truncate(значение, количество знаков) |
| System.Math.Truncate(Double value, Int32 digits) | Truncate(значение, количество знаков) |
| System.Math.Truncate(значение Decimal, количество знаков Int16) | Обрезать(значение, количество знаков) |
| System.Math.Truncate(значение Decimal, количество знаков Int32) | Truncate(значение, число цифр) |
| System.Math.Power(значение Int32, показатель степени Int64) | Степень(число, показатель) |
| System.Math.Power(значение Int32, показатель степени Double) | Power(значение, показатель степени) |
| System.Math.Power(значение Int32, показатель степени Decimal) | Power(значение, показатель степени) |
| System.Math.Power(Int64 value, Int64 exponent) | Power(значение, показатель степени) |
| System.Math.Power(значение Int64, показатель степени Double) | Степень(значение, показатель) |
| System.Math.Power(значение Int64, показатель степени Decimal) | Power(значение, показатель степени) |
| System.Math.Power(значение Double, экспонент Int64) | Power(основание, показатель) |
| System.Math.Power(значение Double, показатель степени Double) | Power(значение, степень) |
| System.Math.Power(Double value, Decimal exponent) | Power(значение, показатель степени) |
| System.Math.Power(значение Decimal, показатель степени Int64) | Power(значение, показатель степени) |
| System.Math.Power(значение Decimal, показатель степени Double) | Power(значение, показатель степени) |
| System.Math.Power(значение Decimal, показатель степени Decimal) | Power(значение, показатель степени) |
Сопоставление побитовых операторов
| Побитовый оператор | Канонические функции для нелогических операндов | Канонические функции для булевых операндов |
|---|---|---|
| Побитовый оператор AND | BitWiseAnd | op1 И op2 |
| Побитовый оператор OR | BitWiseOr | op1 ИЛИ op2 |
| Побитовый оператор NOT | BitWiseNot | НЕ(op) |
| Побитовый оператор XOR | BitWiseXor | ((op1 И НЕ(op2)) ИЛИ (НЕ(op1) И op2)) |
Другое сопоставление
| Способ | Каноническая функция |
|---|---|
| Guid.NewGuid() | NewGuid() |