Dela via


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, + startIndexcount +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()

Se även