CLR-metod till kanonisk funktionsmappning
Entity Framework innehåller en uppsättning kanoniska funktioner som implementerar funktioner som är vanliga i många databassystem, till exempel strängmanipulering och matematiska funktioner. Detta gör det möjligt för utvecklare att rikta in sig på ett brett spektrum av databassystem. När de anropas från en frågeteknik, till exempel LINQ till entiteter, översätts dessa kanoniska funktioner till rätt motsvarande butiksfunktion för providern som används. Detta gör att funktionsanrop kan uttryckas i ett gemensamt format mellan datakällor, vilket ger en konsekvent frågeupplevelse mellan datakällor. Operatorerna AND, OR, NOT och XOR mappas också till kanoniska funktioner när operanden är en numerisk typ. För booleska operander beräknar operatorerna BITWISE AND, OR, NOT och XOR de logiska AND-, OR-, NOT- och XOR-åtgärderna för sina operander. Mer information finns i Kanoniska funktioner.
För LINQ-scenarier omfattar frågor mot Entity Framework mappning av vissa CLR-metoder till metoder på den underliggande datakällan via kanoniska funktioner. Alla metodanrop i en LINQ-till-entitetsfråga som inte uttryckligen mappas till en kanonisk funktion resulterar i att ett körningsundatag NotSupportedException utlöses.
System.String-metodmappning (statisk)
System.String-metoden (statisk) | Kanonisk funktion |
---|---|
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 ) |
Boolesk likhet (sträng a , sträng b ) |
= operator |
Boolesk isnullOrEmpty(sträng value ) |
(IsNull(value )) OR Length(value ) = 0 |
Boolesk op_Equality(Sträng a , Sträng b ) |
= operator |
Boolesk op_Inequality(Sträng a , Sträng 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 ) |
Längd(expression ) |
Microsoft.VisualBasic.Strings.Left(String str , Int32 Length ) |
Left(str , Length ) |
Microsoft.VisualBasic.Strings.Mid(String str , Int32 Start , Int32 Length ) |
Substring(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(Strängvärde) | ToLower(Value ) |
System.String-metodmappning (instans)
System.String-metoden (instans) | Kanonisk funktion | Kommentar |
---|---|---|
Booleska contains(string value ) |
this SOM %value %' |
Om value inte är en konstant mappas detta till IndexOf(this , value ) > 0 |
Booleska endsWith(String value ) |
this LIKE ' %value ' |
Om value inte är en konstant mappar detta till Right(this , length(value )) = value . |
Booleska StartsWith(String value ) |
this SOM %value ' |
Om value inte är en konstant mappas detta till IndexOf(this , value ) = 1. |
Längd | Längd(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 ) |
Substring(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 ) stöds endast om count är ett heltal större än eller lika med 0. |
System.String Replace(String oldValue , String newValue ) |
Replace(this , oldValue , newValue ) |
|
System.String Substring(Int32 startIndex ) |
Substring(this , startIndex +1, Length(this ) - startIndex ) |
|
System.String Substring(Int32 startIndex , Int32 length ) |
Substring(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 ) |
|
Boolesk likhet (sträng value ) |
= operator |
System.DateTime-metodmappning (statisk)
System.DateTime-metoden (statisk) | Kanonisk funktion | Kommentar |
---|---|---|
Boolesk likhet (DateTime t1 , DateTime t2 ) |
= operator | |
System.DateTime.Now | CurrentDateTime() | |
System.DateTime.UtcNow | CurrentUtcDateTime() | |
Boolesk op_Equality(DateTime d1 , DateTime d2 ) |
= operator | |
Boolesk op_GreaterThan(DateTime t1 , DateTime t2 ) |
> Operatör | |
Boolesk op_GreaterThanOrEqual(DateTime t1 , DateTime t2 ) |
>= operator | |
Boolesk op_Inequality(DateTime t1 , DateTime t2 ) |
!= operator | |
Boolesk op_LessThan(DateTime t1 , DateTime t2 ) |
< Operatör | |
Boolesk op_LessThanOrEqual(DateTime t1 , DateTime t2 ) |
<= operator | |
Microsoft.VisualBasic.DateAndTime.DatePart( _ ByVal Interval som DateInterval, _ByVal DateValue som DateTime, _Valfri ByVal FirstDayOfWeekValue som FirstDayOfWeek = VbSunday, _Valfri ByVal FirstWeekOfYearValue som FirstWeekOfYear = VbFirstJan1 _) Som heltal |
Mer information finns i avsnittet DatePart-funktion. | |
Microsoft.VisualBasic.DateAndTime.Now | CurrentDateTime() | |
Microsoft.VisualBasic.DateAndTime.Year(DateTime TimeValue ) |
År() | |
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-metodmappning (instans)
System.DateTime-metoden (instans) | Kanonisk funktion |
---|---|
Boolesk likhet (DateTime value ) |
= operator |
Dag | Day(this ) |
Tid | Hour(this ) |
Millisekund | Millisekunder(this ) |
Minut | Minute(this ) |
Månad | Month(this ) |
Second | Second(this ) |
Year | År(this ) |
System.DateTimeOffset-metodmappning (instans)
Den mappning som visas för get
metoderna i de angivna egenskaperna.
System.DateTimeOffset-metod (instans) | Kanonisk funktion | Kommentar |
---|---|---|
Dag | Day(this ) |
Stöds inte mot SQL Server 2005. |
Tid | Hour(this ) |
Stöds inte mot SQL Server 2005. |
Millisekund | Millisekunder(this ) |
Stöds inte mot SQL Server 2005. |
Minut | Minute(this ) |
Stöds inte mot SQL Server 2005. |
Månad | Month(this ) |
Stöds inte mot SQL Server 2005. |
Second | Second(this ) |
Stöds inte mot SQL Server 2005. |
Year | År(this ) |
Stöds inte mot SQL Server 2005. |
Kommentar
Metoden Equals returnerar true
om de jämförde DateTimeOffset objekten är lika. false
Annars. Metoden CompareTo returnerar 0, 1 eller -1 beroende på om det jämförde DateTimeOffset objektet är lika med, större än eller mindre än.
System.DateTimeOffset-metodmappning (statisk)
Den mappning som visas för get
metoderna i de angivna egenskaperna.
System.DateTimeOffset-metod (statisk) | Kanonisk funktion | Kommentar |
---|---|---|
System.DateTimeOffset.Now() | CurrentDateTimeOffset() | Stöds inte mot SQL Server 2005. |
System.TimeSpan-metodmappning (instans)
Den mappning som visas för get
metoderna i de angivna egenskaperna.
System.TimeSpan-metoden (instans) | Kanonisk funktion | Kommentar |
---|---|---|
Tider | Hour(this ) |
Stöds inte mot SQL Server 2005. |
Millisekunder | Millisekunder(this ) |
Stöds inte mot SQL Server 2005. |
Minuter | Minute(this ) |
Stöds inte mot SQL Server 2005. |
Sekunder | Second(this ) |
Stöds inte mot SQL Server 2005. |
Kommentar
Metoden Equals returnerar true
om de jämförde TimeSpan objekten är lika. false
Annars. Metoden CompareTo returnerar 0, 1 eller -1 beroende på om det jämförde TimeSpan objektet är lika med, större än eller mindre än.
DatePart-funktion
Funktionen DatePart
mappas till en av flera olika kanoniska funktioner, beroende på värdet för Interval
. I följande tabell visas den kanoniska funktionsmappningen för de värden som stöds för Interval
:
Intervallvärde | Kanonisk funktion |
---|---|
DateInterval.Year | År() |
DateInterval.Month | Month() |
DateInterval.Day | Day() |
DateInterval.Hour | Hour() |
DateInterval.Minute | Minute() |
DateInterval.Second | Second() |
Matematisk funktionsmappning
CLR-metod | Kanonisk funktion |
---|---|
System.Decimal.Ceiling(Decimal d ) |
Tak(d ) |
System.Decimal.Floor(Decimal d ) |
Floor(d ) |
System.Decimal.Round(Decimal d ) |
Round(d ) |
System.Math.Ceiling(Decimal d ) |
Tak(d ) |
System.Math.Floor(Decimal d ) |
Floor(d ) |
System.Math.Round(Decimal d ) |
Round(d ) |
System.Math.Ceiling(Double a ) |
Tak(a ) |
System.Math.Floor(Double a ) |
Floor(a ) |
System.Math.Round(Double a ) |
Round(a ) |
System.Math.Round(Dubbelt värde, Int16-siffror) | Round(value, digits) |
System.Math.Round(Double value, Int32 digits) | Round(value, digits) |
System.Math.Round(Decimalvärde, Int16-siffror) | Round(value, digits) |
System.Math.Round(Decimalvärde, Int32, siffror) | Round(value, digits) |
System.Math.Abs(Int16-värde) | Abs(värde) |
System.Math.Abs(Int32-värde) | Abs(värde) |
System.Math.Abs(Int64-värde) | Abs(värde) |
System.Math.Abs(Byte-värde) | Abs(värde) |
System.Math.Abs(Enskilt värde) | Abs(värde) |
System.Math.Abs(Dubbelt värde) | Abs(värde) |
System.Math.Abs(Decimalvärde) | Abs(värde) |
System.Math.Truncate(Double value, Int16 digits) | Trunkera(värde, siffror) |
System.Math.Truncate(Double value, Int32 digits) | Trunkera(värde, siffror) |
System.Math.Truncate(Decimalvärde, Int16-siffror) | Trunkera(värde, siffror) |
System.Math.Truncate(Decimalvärde, Int32-siffror) | Trunkera(värde, siffror) |
System.Math.Power(Int32-värde, Int64-exponent) | Power(value, exponent) |
System.Math.Power(Int32-värde, Double exponent) | Power(value, exponent) |
System.Math.Power(Int32-värde, decimal exponent) | Power(value, exponent) |
System.Math.Power(Int64-värde, Int64-exponent) | Power(value, exponent) |
System.Math.Power(Int64-värde, Dubbel exponent) | Power(value, exponent) |
System.Math.Power(Int64-värde, decimal exponent) | Power(value, exponent) |
System.Math.Power(Double value, Int64 exponent) | Power(value, exponent) |
System.Math.Power(Double value, Double exponent) | Power(value, exponent) |
System.Math.Power(Double value, Decimal exponent) | Power(value, exponent) |
System.Math.Power(Decimalvärde, Int64 exponent) | Power(value, exponent) |
System.Math.Power(Decimalvärde, Double exponent) | Power(value, exponent) |
System.Math.Power(Decimalvärde, decimal exponent) | Power(value, exponent) |
Bitvis operatormappning
Bitvis operator | Kanonisk funktion för icke-booleska operander | Kanonisk funktion för booleska operander |
---|---|---|
Bitvis OCH-operator | BitWiseAnd | op1 AND op2 |
Bitvis ELLER-operator | BitWiseOr | op1 OR op2 |
Bitvis NOT-operator | BitWiseNot | NOT(op) |
Bitvis XOR-operator | BitWiseXor | ((op1 AND NOT(op2)) OR (NOT(op1) AND op2)) |
Annan mappning
Metod | Kanonisk funktion |
---|---|
Guid.NewGuid() | NewGuid() |