Udostępnij za pośrednictwem


Metody mapowania funkcji Canonical CLR

Platforma Entity Framework udostępnia zestaw funkcji kanonicznych, które implementują funkcje wspólne w wielu systemach baz danych, takich jak manipulowanie ciągami i funkcje matematyczne. Dzięki temu deweloperzy mogą kierować szeroką gamę systemów baz danych. Po wywołaniu z technologii zapytań, takiej jak LINQ to Entities, te funkcje kanoniczne są tłumaczone na poprawną odpowiednią funkcję magazynu dla używanego dostawcy. Dzięki temu wywołania funkcji mogą być wyrażane w wspólnej formie w różnych źródłach danych, zapewniając spójne środowisko zapytań w różnych źródłach danych. Operatory bitowe AND, OR, NOT i XOR są również mapowane na funkcje kanoniczne, gdy operand jest typem liczbowym. W przypadku operandów logicznych operatory bitowe AND, OR, NOT i XOR obliczają operacje logiczne AND, OR, NOT i XOR ich operandów. Aby uzyskać więcej informacji, zobacz Canonical Functions.

W przypadku scenariuszy LINQ zapytania względem platformy Entity Framework obejmują mapowanie niektórych metod CLR na metody w bazowym źródle danych za pomocą funkcji kanonicznych. Wszystkie wywołania metod w zapytaniu LINQ to Entities, które nie są jawnie mapowane na funkcję kanoniczną, spowodują zgłoszenie wyjątku środowiska uruchomieniowego NotSupportedException .

Mapowanie metody System.String (Static)

System.String, metoda (statyczna) Canonical, funkcja
System.String Concat(Ciąg str0, Ciąg str1) Concat(str0, str1)
System.String Concat(Ciąg str0, Ciąg str1, Ciąg str2) Concat(Concat(str0, str1), str2)
System.String Concat(Ciąg str0, Ciąg str1, Ciąg str2, Ciąg str03) Concat(Concat(Concat(str0, str1), str2) str3
Wartość logiczna Equals(Ciąg a, Ciąg b) = — Operator
Wartość logiczna IsNullOrEmpty(String value) (IsNull()) OR Length(valuevalue) = 0
Wartość logiczna op_Equality(Ciąg a, Ciąg b) = — Operator
Wartość logiczna op_Inequality(Ciąg a , Ciąg b) != - Operator
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) Długość(expression)
Microsoft.VisualBasic.Strings.Left(Ciąg str, Int32 Length) Left(str, Length)
Microsoft.VisualBasic.Strings.Mid(String str, Int32 Start, Int32 Length) Podciąg(str, Start, Length)
Microsoft.VisualBasic.Strings.Right(Ciąg str, Int32 Length) Right(str, Length)
Microsoft.VisualBasic.Strings.UCase(String Value) ToUpper(Value)
Microsoft.VisualBasic.Strings.LCase(Wartość ciągu) ToLower(Value)

Mapowanie metody System.String (Instance)

System.String, metoda (wystąpienie) Canonical, funkcja Uwagi
Wartość logiczna Contains(String value) this LIKE '%%value' Jeśli value nie jest stałą, jest to mapowanie na IndexOf(this, value) > 0
Wartość logiczna EndsWith(Ciąg value) this LIKE '%value" Jeśli value nie jest stałą, to jest mapowania na Right(this, length(value)) = value.
Wartość logiczna StartsWith(Ciąg value) this LIKE 'value%' Jeśli value nie jest stałą, jest to mapowanie na IndexOf(this, value) = 1.
Długość Długość(this)
Int32 IndexOf(Ciąg value) IndexOf(this, value) - 1
System.String Insert(Int32 startIndex, String value) Concat(Concat(Substring(this, 1, startIndex), valueSubstring(this, startIndex+1, Length(this) - startIndex))
System.String Remove(Int32 startIndex) Podciąg(this, 1, startIndex)
System.String Remove(Int32 startIndex, Int32 count) Concat(Podciąg(this, 1, startIndex) , Podciąg(this, + startIndexcount +1, Długość(this) - (startIndex + count))) Funkcja Remove(startIndex, ) jest obsługiwana tylko wtedy, countgdy count jest liczbą całkowitą większą lub równą 0.
System.String Replace(Ciąg oldValue, Ciąg newValue) Replace(this, oldValue, newValue)
Podciąg System.String(Int32 startIndex) Podciąg(this, +1, Długość(this) — startIndexstartIndex )
Podciąg System.String(Int32 startIndex, Int32 length) Podciąg(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)
Wartość logiczna Equals(Ciąg value) = — Operator

Mapowanie metody System.DateTime (Static)

System.DateTime, metoda (statyczna) Canonical, funkcja Uwagi
Wartość logiczna Równas(DateTime t1, DateTime t2) = — Operator
System.DateTime.Now CurrentDateTime()
System.DateTime.UtcNow CurrentUtcDateTime()
Wartość logiczna op_Equality(DateTime d1, DateTime d2) = — Operator
Wartość logiczna op_GreaterThan(DateTime t1, DateTime t2) > Operator
Wartość logiczna op_GreaterThanOrEqual(DateTime t1, DateTime t2) >= operator
Wartość logiczna op_Inequality(DateTime t1, DateTime t2) != - Operator
Wartość logiczna op_LessThan(DateTime t1, DateTime t2) < Operator
Wartość logiczna op_LessThanOrEqual(DateTime t1, DateTime t2) <= operator
Microsoft.VisualBasic.DateAndTime.DatePart( _

ByVal Interval As DateInterval, _

ByVal DateValue as DateTime, _

Opcjonalne ByVal FirstDayOfWeekValue jako FirstDayOfWeek = VbSunday, _

Opcjonalne ByVal FirstWeekOfYearValue jako FirstWeekOfYear = VbFirstJan1 _

) Jako liczba całkowita
Aby uzyskać więcej informacji, zobacz sekcję Funkcja DatePart.
Microsoft.VisualBasic.DateAndTime.Now CurrentDateTime()
Microsoft.VisualBasic.DateAndTime.Year(DateTime TimeValue)) Rok()
Microsoft.VisualBasic.DateAndTime.Month(DateTime)TimeValue Month()
Microsoft.VisualBasic.DateAndTime.Day(DateTime TimeValue) Dzień()
Microsoft.VisualBasic.DateAndTime.Hour(DateTime TimeValue)) Hour()
Microsoft.VisualBasic.DateAndTime.Minute(DateTime(DateTime TimeValue) Minuta()
Microsoft.VisualBasic.DateAndTime.Second(DateTime TimeValue) Second()

Mapowanie metody System.DateTime (Instance)

System.DateTime, metoda (wystąpienie) Canonical, funkcja
Wartość logiczna Equals(DateTime value) = — Operator
Dzień Dzień(this)
Godzina Hour(this)
Milisekundy Milisekundy(this)
Minuta Minuta(this)
Month Month(this)
Second Second(this)
Year (Rok) Rok(this)

Mapowanie metody System.DateTimeOffset (instance)

Mapowanie pokazane dla get metod we wymienionych właściwościach.

System.DateTimeOffset, metoda (wystąpienie) Canonical, funkcja Uwagi
Dzień Dzień(this) Nieobsługiwane w programie SQL Server 2005.
Godzina Hour(this) Nieobsługiwane w programie SQL Server 2005.
Milisekundy Milisekundy(this) Nieobsługiwane w programie SQL Server 2005.
Minuta Minuta(this) Nieobsługiwane w programie SQL Server 2005.
Month Month(this) Nieobsługiwane w programie SQL Server 2005.
Second Second(this) Nieobsługiwane w programie SQL Server 2005.
Year (Rok) Rok(this) Nieobsługiwane w programie SQL Server 2005.

Uwaga

Metoda Equals zwraca true wartość , jeśli porównywane DateTimeOffset obiekty są równe; false w przeciwnym razie. Metoda CompareTo zwraca wartość 0, 1 lub -1 w zależności od tego, czy porównywany DateTimeOffset obiekt jest równy, większy lub mniejszy, niż, odpowiednio.

Mapowanie metody System.DateTimeOffset (Static)

Mapowanie pokazane dla get metod we wymienionych właściwościach.

System.DateTimeOffset, metoda (statyczna) Canonical, funkcja Uwagi
System.DateTimeOffset.Now() CurrentDateTimeOffset() Nieobsługiwane w programie SQL Server 2005.

Mapowanie metody System.TimeSpan (Instance)

Mapowanie pokazane dla get metod we wymienionych właściwościach.

System.TimeSpan, metoda (wystąpienie) Canonical, funkcja Uwagi
Godziny Hour(this) Nieobsługiwane w programie SQL Server 2005.
Milisekundy Milisekundy(this) Nieobsługiwane w programie SQL Server 2005.
Minuty Minuta(this) Nieobsługiwane w programie SQL Server 2005.
Sekundy Second(this) Nieobsługiwane w programie SQL Server 2005.

Uwaga

Metoda Equals zwraca true wartość , jeśli porównywane TimeSpan obiekty są równe; false w przeciwnym razie. Metoda CompareTo zwraca wartość 0, 1 lub -1 w zależności od tego, czy porównywany TimeSpan obiekt jest równy, większy lub mniejszy, niż, odpowiednio.

DatePart, funkcja

Funkcja DatePart jest mapowana na jedną z kilku różnych funkcji kanonicznych w zależności od wartości Interval. W poniższej tabeli przedstawiono kanoniczne mapowanie funkcji dla obsługiwanych wartości :Interval

Wartość interwału Canonical, funkcja
DateInterval.Year Rok()
DateInterval.Month Month()
DateInterval.Day Dzień()
DateInterval.Hour Hour()
DateInterval.Minute Minuta()
DateInterval.Second Second()

Mapowanie funkcji matematycznych

CLR, metoda Canonical, funkcja
System.Decimal.Ceiling(Decimal d) Sufit(d)
System.Decimal.Floor(Decimal d) Floor(d)
System.Decimal.Round(Decimal d) Round(d)
System.Math.Ceiling(Decimal d) Sufit(d)
System.Math.Floor(Decimal d) Floor(d)
System.Math.Round(Decimal d) Round(d)
System.Math.Ceiling(Double a) Sufit(a)
System.Math.Floor(Double a) Floor(a)
System.Math.Round(Double a) Round(a)
System.Math.Round(Podwójna wartość, Cyfry Int16) Round(wartość, cyfry)
System.Math.Round(Podwójna wartość, Cyfry Int32) Round(wartość, cyfry)
System.Math.Round(wartość dziesiętna, cyfry Int16) Round(wartość, cyfry)
System.Math.Round(Wartość dziesiętna, Int32, cyfry) Round(wartość, cyfry)
System.Math.Abs(Wartość Int16) Abs(wartość)
System.Math.Abs(wartość Int32) Abs(wartość)
System.Math.Abs(wartość Int64) Abs(wartość)
System.Math.Abs(wartość bajtowa) Abs(wartość)
System.Math.Abs(Pojedyncza wartość) Abs(wartość)
System.Math.Abs(Podwójna wartość) Abs(wartość)
System.Math.Abs(wartość dziesiętna) Abs(wartość)
System.Math.Truncate(Podwójna wartość, Cyfry Int16) Truncate(wartość, cyfry)
System.Math.Truncate(Podwójna wartość, Cyfry Int32) Truncate(wartość, cyfry)
System.Math.Truncate(wartość dziesiętna, cyfry Int16) Truncate(wartość, cyfry)
System.Math.Truncate(Wartość dziesiętna, Cyfry Int32) Truncate(wartość, cyfry)
System.Math.Power(wartość Int32, wykładnik Int64) Power(value, exponent)
System.Math.Power(wartość Int32, wykładnik podwójny) Power(value, exponent)
System.Math.Power(wartość Int32, wykładnik dziesiętny) Power(value, exponent)
System.Math.Power(wartość Int64, wykładnik Int64) Power(value, exponent)
System.Math.Power(wartość Int64, wykładnik podwójny) Power(value, exponent)
System.Math.Power(wartość Int64, wykładnik dziesiętny) Power(value, exponent)
System.Math.Power(Podwójna wartość, wykładnik Int64) Power(value, exponent)
System.Math.Power(Podwójna wartość, Wykładnik podwójny) Power(value, exponent)
System.Math.Power(Podwójna wartość, wykładnik dziesiętny) Power(value, exponent)
System.Math.Power(wartość dziesiętna, wykładnik Int64) Power(value, exponent)
System.Math.Power(wartość dziesiętna, wykładnik podwójny) Power(value, exponent)
System.Math.Power(wartość dziesiętna, wykładnik dziesiętny) Power(value, exponent)

Mapowanie operatorów bitowych

Operator bitowy Funkcja kanoniczna dla operandów nielogicznych Funkcja kanoniczna dla operandów logicznych
Operator bitowy AND Bitowe i op1 AND op2
Operator bitowy OR BitWiseOr op1 OR op2
Operator NOT bitowy BitWiseNot NOT(op)
Operator bitowego XOR BitWiseXor ((op1 AND NOT(op2)) OR (NOT(op1) AND op2))

Inne mapowanie

Method Canonical, funkcja
Guid.NewGuid() NewGuid()

Zobacz też