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(value value ) = 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 ), value Substring(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 , + startIndex count +1, Długość(this ) - (startIndex + count ))) |
Funkcja Remove(startIndex , ) jest obsługiwana tylko wtedy, count gdy 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 ) — startIndex startIndex ) |
|
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 ) |
Milisekunda | 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. |
Milisekunda | 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() |