Metoda CLR pro mapování kanonických funkcí
Entity Framework poskytuje sadu kanonických funkcí, které implementují funkce, které jsou společné v mnoha databázových systémech, jako je manipulace s řetězci a matematické funkce. Vývojáři tak můžou cílit na širokou škálu databázových systémů. Při zavolání z dotazovací technologie, jako je LINQ to Entities, se tyto kanonické funkce přeloží na správnou odpovídající funkci úložiště používaného poskytovatelem. To umožňuje vyjádřit vyvolání funkcí ve společné podobě napříč zdroji dat, což poskytuje konzistentní prostředí dotazů napříč zdroji dat. Bitové operátory AND, OR, NOT a XOR jsou také mapovány na kanonické funkce, pokud je operand číselným typem. U logických operandů bitové operátory AND, OR, NOT a XOR počítají logické operace AND, OR, NOT a XOR jejich operandů. Další informace naleznete v tématu Canonical Functions.
V případě scénářů LINQ dotazy na Entity Framework zahrnují mapování určitých metod CLR na metody souvisejícího zdroje dat prostřednictvím kanonických funkcí. Jakákoli volání metody v dotazu LINQ to Entities, které nejsou explicitně namapované na kanonickou funkci, způsobí vyvolání výjimky za běhu NotSupportedException .
System.String – metoda (statické) mapování
Metoda System.String (statická) | Kanonická funkce |
---|---|
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, Stringstr0 str1 , Stringstr2 , String str03 ) |
Concat(Concat(Concat(str0 ; str1 ); str2 str3 ) |
Logická hodnota Equals(String a , String b ) |
= – operátor |
Logická hodnota IsNullOrEmpty(String value ) |
(IsNull(value )) OR Length(value ) = 0 |
Logická hodnota op_Equality(řetězec a , řetězec b ) |
= – operátor |
Logická op_Inequality(řetězec a , řetězec b ) |
!= – operátor |
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 ) |
Length(expression ) |
Microsoft.VisualBasic.Strings.Left(String str , Int32 Length ) |
Left(str , Length ) |
Microsoft.VisualBasic.Strings.Mid(String str , Int32 Start , Int32 Length ) |
Podřetětěr(str , Start , Length ) |
Microsoft.VisualBasic.Strings.Right(String str , Int32 Length ) |
Right(str , Length ) |
Microsoft.VisualBasic.Strings.UCase(String Value ) |
ToUpper(Value ) |
Microsoft.VisualBasic.Strings.LCase(Řetězcová hodnota) | ToLower(Value ) |
System.String – metoda (Instance) – mapování
System.String – metoda (instance) | Kanonická funkce | Notes |
---|---|---|
Logická hodnota Contains(String value ) |
this LIKE '%value %' |
Pokud value není konstanta, pak se mapuje na IndexOf(this ; value ) > 0. |
Boolean EndsWith(String value ) |
this LIKE ' %value ' |
Pokud value není konstanta, pak se mapuje na Right(this ; length(value )) = value . |
Boolean StartsWith(String value ) |
this LIKE 'value %' |
Pokud value není konstanta, pak se mapuje na IndexOf(this ; value ) = 1. |
Délka | Length(this ) |
|
Int32 IndexOf(String value ) |
IndexOf(this , value ) – 1 |
|
System.String Insert(Int32 startIndex , String value ) |
Concat(Concat(Podřetězení(this ; 1; startIndex ); value Podřetězení(this ; startIndex +1; Délka(this ) - startIndex )) |
|
System.String Remove(Int32 startIndex ) |
Podřetěžka(this , 1, startIndex ) |
|
System.String Remove(Int32 startIndex , Int32 count ) |
Concat(Podřetězení(this ; 1; startIndex ); Podřetězení(this ; + startIndex count +1; Délka(this ) - (startIndex + count ))) |
Funkce Remove(startIndex , ) se podporuje pouze v případě, count že count je celé číslo větší nebo rovno 0. |
System.String Replace(String oldValue , String newValue ) |
Replace(this , oldValue , newValue ) |
|
Podřetězce System.String(Int32 startIndex ) |
Podřetěžka(this ; startIndex +1; Délka(this ) - startIndex ) |
|
Podřetězce System.String(Int32 startIndex , Int32 length ) |
Podřetětěr(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 ) |
|
Logická hodnota Equals(String value ) |
= – operátor |
System.DateTime – metoda (statická) mapování
Metoda System.DateTime (statická) | Kanonická funkce | Notes |
---|---|---|
Logická hodnota Equals(DateTime t1 , DateTime t2 ) |
= – operátor | |
System.DateTime.Now | CurrentDateTime() | |
System.DateTime.UtcNow | CurrentUtcDateTime() | |
Logická hodnota op_Equality(DateTime d1 , DateTime d2 ) |
= – operátor | |
Logická hodnota op_GreaterThan(DateTime t1 , DateTime t2 ) |
> operátor | |
Logická hodnota op_GreaterThanOrEqual(DateTime t1 , DateTime t2 ) |
>= – operátor | |
Logická hodnota op_Inequality(DateTime t1 , DateTime t2 ) |
!= – operátor | |
Logická hodnota op_LessThan(DateTime t1 , DateTime t2 ) |
< operátor | |
Logická hodnota op_LessThanOrEqual(DateTime t1 , DateTime t2 ) |
<= – operátor | |
Microsoft.VisualBasic.DateAndTime.DatePart( _ ByVal Interval As DateInterval, _ByVal DateValue As DateTime, _Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday, _Optional ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1 _) Jako celé číslo |
Další informace najdete v části Funkce DatePart. | |
Microsoft.VisualBasic.DateAndTime.Now | CurrentDateTime() | |
Microsoft.VisualBasic.DateAndTime.Year(DateTime TimeValue ) |
Year() | |
Microsoft.VisualBasic.DateAndTime.Month(DateTime TimeValue ) |
Month() | |
Microsoft.VisualBasic.DateAndTime.Day(DateTime TimeValue ) |
Day() | |
Microsoft.VisualBasic.DateAndTime.Hour(DateTime TimeValue ) |
Hour() | |
Microsoft.VisualBasic.DateAndTime.Minute(DateTime TimeValue ) |
Minute() | |
Microsoft.VisualBasic.DateAndTime.Second(DateTime TimeValue ) |
Second() |
System.DateTime – metoda (instance) – mapování
Metoda System.DateTime (instance) | Kanonická funkce |
---|---|
Logická hodnota Equals(DateTime value ) |
= – operátor |
Den | Day(this ) |
Hodina | Hour(this ) |
Milisekunda | Milisekunda(this ) |
Minuta | Minute(this ) |
Month | Month(this ) |
Second | Second(this ) |
Year (Rok) | Year(this ) |
System.DateTimeOffset – metoda (instance) – mapování
Mapování zobrazené pro get
metody v uvedených vlastnostech.
System.DateTimeOffset – metoda (instance) | Kanonická funkce | Notes |
---|---|---|
Den | Day(this ) |
Sql Server 2005 se nepodporuje. |
Hodina | Hour(this ) |
Sql Server 2005 se nepodporuje. |
Milisekunda | Milisekunda(this ) |
Sql Server 2005 se nepodporuje. |
Minuta | Minute(this ) |
Sql Server 2005 se nepodporuje. |
Month | Month(this ) |
Sql Server 2005 se nepodporuje. |
Second | Second(this ) |
Sql Server 2005 se nepodporuje. |
Year (Rok) | Year(this ) |
Sql Server 2005 se nepodporuje. |
Poznámka:
Metoda Equals vrátí true
, pokud jsou porovnávané DateTimeOffset objekty stejné; false
jinak. Metoda CompareTo vrátí hodnotu 0, 1 nebo -1 v závislosti na tom, zda je porovnávaný DateTimeOffset objekt roven, větší než nebo menší než.
System.DateTimeOffset – metoda (statická) mapování
Mapování zobrazené pro get
metody v uvedených vlastnostech.
Metoda System.DateTimeOffset (statická) | Kanonická funkce | Notes |
---|---|---|
System.DateTimeOffset.Now() | CurrentDateTimeOffset() | Sql Server 2005 se nepodporuje. |
System.TimeSpan – metoda (instance) – mapování
Mapování zobrazené pro get
metody v uvedených vlastnostech.
System.TimeSpan – metoda (instance) | Kanonická funkce | Notes |
---|---|---|
Hodiny | Hour(this ) |
Sql Server 2005 se nepodporuje. |
Milisekundy | Milisekunda(this ) |
Sql Server 2005 se nepodporuje. |
V řádu minut | Minute(this ) |
Sql Server 2005 se nepodporuje. |
Sekundy | Second(this ) |
Sql Server 2005 se nepodporuje. |
Poznámka:
Metoda Equals vrátí true
, pokud jsou porovnávané TimeSpan objekty stejné; false
jinak. Metoda CompareTo vrátí hodnotu 0, 1 nebo -1 v závislosti na tom, zda je porovnávaný TimeSpan objekt roven, větší než nebo menší než.
Funkce DatePart
Funkce DatePart
je namapována na jednu z několika různých kanonických funkcí v závislosti na hodnotě Interval
. Následující tabulka zobrazuje mapování kanonických funkcí pro podporované hodnoty Interval
:
Hodnota intervalu | Kanonická funkce |
---|---|
DateInterval.Year | Year() |
DateInterval.Month | Month() |
DateInterval.Day | Day() |
DateInterval.Hour | Hour() |
DateInterval.Minute | Minute() |
DateInterval.Second | Second() |
Mapování matematických funkcí
Metoda CLR | Kanonická funkce |
---|---|
System.Decimal.Ceiling(Decimal d ) |
Ceiling(d ) |
System.Decimal.Floor(Decimal d ) |
Floor(d ) |
System.Decimal.Round(Decimal d ) |
Round(d ) |
System.Math.Ceiling(Desetinné číslo d ) |
Ceiling(d ) |
System.Math.Floor(desetinné d číslo) |
Floor(d ) |
System.Math.Round(Decimal d ) |
Round(d ) |
System.Math.Ceiling(Double a ) |
Ceiling(a ) |
System.Math.Floor(Double a ) |
Floor(a ) |
System.Math.Round(Double a ) |
Round(a ) |
System.Math.Round(Double value, Int16 digits) | Round(hodnota, číslice) |
System.Math.Round(Double value; Int32 digits) | Round(hodnota, číslice) |
System.Math.Round(Desetinná hodnota, číslice Int16) | Round(hodnota, číslice) |
System.Math.Round(Desetinná hodnota, Int32, číslice) | Round(hodnota, číslice) |
System.Math.Abs(Hodnota Int16) | Abs(hodnota) |
System.Math.Abs(Int32 value) | Abs(hodnota) |
System.Math.Abs(Hodnota Int64) | Abs(hodnota) |
System.Math.Abs(bajtová hodnota) | Abs(hodnota) |
System.Math.Abs(Single value) | Abs(hodnota) |
System.Math.Abs(Dvojitá hodnota) | Abs(hodnota) |
System.Math.Abs(desetinná hodnota) | Abs(hodnota) |
System.Math.Truncate(Double value, Int16 digits) | Zkrácení (hodnota, číslice) |
System.Math.Truncate(Double value; Int32 digits) | Zkrácení (hodnota, číslice) |
System.Math.Truncate(Desetinná hodnota, číslice Int16) | Zkrácení (hodnota, číslice) |
System.Math.Truncate(Desetinná hodnota, číslice Int32) | Zkrácení (hodnota, číslice) |
System.Math.Power(Int32 value, Int64 exponent) | Power(hodnota, exponent) |
System.Math.Power(Int32 value; Double exponent) | Power(hodnota, exponent) |
System.Math.Power(Int32 value; Decimal exponent) | Power(hodnota, exponent) |
System.Math.Power(Hodnota Int64, Exponent Int64) | Power(hodnota, exponent) |
System.Math.Power(Hodnota Int64, Dvojitý exponent) | Power(hodnota, exponent) |
System.Math.Power(Int64 value; Decimal exponent) | Power(hodnota, exponent) |
System.Math.Power(Dvojitá hodnota, Exponent Int64) | Power(hodnota, exponent) |
System.Math.Power(Dvojitá hodnota, Dvojitá exponent) | Power(hodnota, exponent) |
System.Math.Power(Double value; Decimal exponent) | Power(hodnota, exponent) |
System.Math.Power(Desetinná hodnota, exponent Int64) | Power(hodnota, exponent) |
System.Math.Power(Desetinná hodnota, dvojitý exponent) | Power(hodnota, exponent) |
System.Math.Power(Desetinná hodnota, exponent desetinných míst) | Power(hodnota, exponent) |
Mapování bitového operátoru
Bitový operátor | Kanonická funkce pro nelogická operandy | Kanonická funkce pro logické operandy |
---|---|---|
Bitový operátor AND | BitWiseAnd | op1 AND op2 |
Bitový operátor OR | BitWiseOr | op1 OR op2 |
Bitový operátor NOT | BitWiseNot | NOT(op) |
Bitový operátor XOR | BitWiseXor | ((op1 A NOT(op2)) NEBO (NOT(op1) AND op2)) |
Jiné mapování
metoda | Kanonická funkce |
---|---|
Guid.NewGuid() | NewGuid() |