Freigeben über


Mapping von CLR-Methoden zu kanonischen Funktionen

Das Entity Framework stellt einen Satz kanonischer Funktionen bereit, die eine auf vielen Datenbanksystemen verbreitete Funktionalität implementieren, z. B. Zeichenfolgenbearbeitung und mathematische Funktionen. Dadurch können Entwickler für einen großen Bereich von Datenbanksystemen entwickeln. Beim Aufrufen aus einer Abfragetechnologie wie LINQ to Entities werden diese kanonischen Funktionen in die entsprechenden Speicherfunktionen des verwendeten Anbieters übersetzt. Dadurch können Funktionsaufrufe für verschiedene Datenquellen in einer allgemeinen Form ausgedrückt werden, und es werden konsistente datenquellenübergreifende Abfragemöglichkeiten bereitgestellt. Weiterhin werden die bitweisen Operatoren AND, OR, NOT und XOR kanonischen Funktionen zugeordnet, wenn der Operand ein numerischer Typ ist. Bei booleschen Operanden werden durch die bitweisen Operatoren AND, OR, NOT und XOR die logischen Operationen AND, OR, NOT und XOR ihrer Operanden berechnet. Weitere Informationen finden Sie unter Kanonische Funktionen (Entity SQL).

In LINQ-Szenarios müssen bei Abfragen für das Entity Framework bestimmte CLR-Methoden den Methoden für die zugrunde liegende Datenquelle mithilfe kanonischer Funktionen zugeordnet werden. Bei allen Methodenaufrufen in einer LINQ to Entities-Abfrage, die nicht explizit einer kanonischen Funktion zugeordnet sind, wird eine NotSupportedException-Laufzeitausnahme ausgelöst.

Mapping der System.String-Methode (statisch)

System.String-Methode (statisch) Kanonische 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)

Boolean Equals(String a, String b)

"="-Operator

Boolean IsNullOrEmpty(String value)

(IsNull(value)) OR Length(value) = 0

Boolean op_Equality(String a, String b)

"="-Operator

Boolean op_Inequality(String a , String 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)

Length(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(String Value)

ToLower(Value)

Mapping der System.String-Methode (Instanz)

System.String-Methode (Instanz) Kanonische Funktion Hinweise

Boolean Contains(String value)

this LIKE '%value%'

Wenn value keine Konstante ist, dann wird dies zugeordnet zu: IndexOf (this, value) > 0

Boolean EndsWith(String value)

this LIKE '%value'

Wenn value keine Konstante ist, dann wird dies zugeordnet zu: Right(this, length(value)) = value.

Boolean StartsWith(String value)

this LIKE 'value%'

Wenn value keine Konstante ist, dann wird dies zugeordnet zu: IndexOf(this, value) = 1.

Length

Length(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) wird nur unterstützt, wenn count eine ganze Zahl größer oder gleich 0 (null) ist.

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)

Boolean Equals(String value)

"="-Operator

Mapping der System.DateTime-Methode (statisch)

System.DateTime-Methode (statisch) Kanonische Funktion Anmerkungen

Boolean Equals(DateTime t1, DateTime t2)

=-Operator

System.DateTime.Now

CurrentDateTime()

System.DateTime.UtcNow

CurrentUtcDateTime()

Boolean op_Equality(DateTime d1, DateTime d2)

= operator

Boolean op_GreaterThan(DateTime t1, DateTime t2)

">"-Operator

Boolean op_GreaterThanOrEqual(DateTime t1, DateTime t2)

">="-Operator

Boolean op_Inequality(DateTime t1, DateTime t2)

!= operator

Boolean op_LessThan(DateTime t1, DateTime t2)

"<"-Operator

Boolean op_LessThanOrEqual(DateTime t1, DateTime t2)

"<="-Operator

Microsoft.VisualBasic.DateAndTime.DatePart( _

ByVal Interval As DateInterval, _

ByVal DateValue As DateTime, _

Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday, _

Optional ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1 _

) As Integer

Weitere Informationen finden Sie im Abschnitt über die DatePart-Funktion.

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()

Mapping der System.DateTime-Methode (Instanz)

System.DateTime-Methode (Instanz) Kanonische Funktion

Boolean Equals(DateTime value)

=-Operator

Day

Day(this)

Hour

Hour(this)

Millisecond

Millisecond(this)

Minute

Minute(this)

Month

Month(this)

Second

Second(this)

Year

Year(this)

System.DateTimeOffset Method (Instance)-Zuordnung

Die für die get-Methoden in den aufgeführten Eigenschaften gezeigte Zuordnung.

System.DateTimeOffset-Methode (Instanz) Kanonische Funktion Hinweise

Day

Day(this)

Wird für SQL Server 2005 nicht unterstützt.

Hour

Hour(this)

Wird für SQL Server 2005 nicht unterstützt.

Millisecond

Millisecond(this)

Wird für SQL Server 2005 nicht unterstützt.

Minute

Minute(this)

Wird für SQL Server 2005 nicht unterstützt.

Month

Month(this)

Wird für SQL Server 2005 nicht unterstützt.

Second

Second(this)

Wird für SQL Server 2005 nicht unterstützt.

Year

Year(this)

Wird für SQL Server 2005 nicht unterstützt.

Bb738681.note(de-de,VS.100).gifHinweis:
Die Equals-Methode gibt true zurück, wenn die verglichenen DateTimeOffset-Objekte gleich sind, andernfalls false.Die CompareTo-Methode gibt 0, 1 oder -1 zurück, abhängig davon, ob das verglichene DateTimeOffset-Objekt gleich, größer oder kleiner ist.

System.DateTimeOffset-Methodenzuordnung (statisch)

Die für die get-Methoden in den aufgeführten Eigenschaften gezeigte Zuordnung.

System.DateTimeOffset-Methode (statisch) Kanonische Funktion Hinweise

System.DateTimeOffset.Now()

CurrentDateTimeOffset()

Wird für SQL Server 2005 nicht unterstützt.

System.TimeSpan-Methodenzuordnung (Instanz)

Die für die get-Methoden in den aufgeführten Eigenschaften gezeigte Zuordnung.

System.TimeSpan-Methode (Instanz) Kanonische Funktion Hinweise

Hours

Hour(this)

Wird für SQL Server 2005 nicht unterstützt.

Milliseconds

Millisecond(this)

Wird für SQL Server 2005 nicht unterstützt.

Minutes

Minute(this)

Wird für SQL Server 2005 nicht unterstützt.

Seconds

Second(this)

Wird für SQL Server 2005 nicht unterstützt.

Bb738681.note(de-de,VS.100).gifHinweis:
Die Equals-Methode gibt true zurück, wenn die verglichenen TimeSpan-Objekte gleich sind, andernfalls false.Die CompareTo-Methode gibt 0, 1 oder -1 zurück, abhängig davon, ob das verglichene TimeSpan-Objekt gleich, größer oder kleiner ist.

DatePart-Funktion

Die DatePart-Funktion wird, in Abhängigkeit vom Wert von Interval, einer von mehreren kanonischen Funktionen zugeordnet. In der folgenden Tabelle wird das Mapping zu kanonischen Funktionen für die unterstützten Werte von Interval angezeigt:

Intervallwert Kanonische Funktion

DateInterval.Year

Year()

DateInterval.Month

Month()

DateInterval.Day

Day()

DateInterval.Hour

Hour()

DateInterval.Minute

Minute()

DateInterval.Second

Second()

Zuordnung mathematischer Funktionen

CLR-Methode Kanonische Funktion

System.Decimal.Ceiling(Decimal d)

Ceiling(d)

System.Decimal.Floor(Decimal d)

Floor(d)

System.Decimal.Round(Decimal d)

Round(d)

System.Math.Ceiling(Decimal d)

Ceiling(d)

System.Math.Floor(Decimal d)

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-Wert, Int16-Ziffern)

Round(Wert, Ziffern)

System.Math.Round(Double-Wert, Int32-Ziffern)

Round(Wert, Ziffern)

System.Math.Round(Dezimalwert, Int16-Ziffern)

Round(Wert, Ziffern)

System.Math.Round(Dezimalwert, Int32-Ziffern)

Round(Wert, Ziffern)

System.Math.Abs(Int16-Wert)

Abs(Wert)

System.Math.Abs(Int32-Wert)

Abs(Wert)

System.Math.Abs(Int64-Wert)

Abs(Wert)

System.Math.Abs(Byte-Wert)

Abs(Wert)

System.Math.Abs(Einzelwert)

Abs(Wert)

System.Math.Abs(Double-Wert)

Abs(Wert)

System.Math.Abs(Dezimalwert)

Abs(Wert)

System.Math.Truncate(Double-Wert, Int16-Ziffern)

Truncate(Wert, Ziffern)

System.Math.Truncate(Double-Wert, Int32-Ziffern)

Truncate(Wert, Ziffern)

System.Math.Truncate(Dezimalwert, Int16-Ziffern)

Truncate(Wert, Ziffern)

System.Math.Truncate(Dezimalwert, Int32-Ziffern)

Truncate(Wert, Ziffern)

System.Math.Power(Int32-Wert, Int64-Exponent)

Power(Wert, Exponent)

System.Math.Power(Int32-Wert, Double-Exponent)

Power(Wert, Exponent)

System.Math.Power(Int32-Wert, Dezimalexponent)

Power(Wert, Exponent)

System.Math.Power(Int64-Wert, Int64-Exponent)

Power(Wert, Exponent)

System.Math.Power(Int64-Wert, Double-Exponent)

Power(Wert, Exponent)

System.Math.Power(Int64-Wert, Dezimalexponent)

Power(Wert, Exponent)

System.Math.Power(Double-Wert, In64-Exponent)

Power(Wert, Exponent)

System.Math.Power(Double-Wert, Double-Exponent)

Power(Wert, Exponent)

System.Math.Power(Double-Wert, Dezimalexponent)

Power(Wert, Exponent)

System.Math.Power(Dezimalwert, Int64-Exponent)

Power(Wert, Exponent)

System.Math.Power(Dezimalwert, Double-Exponent)

Power(Wert, Exponent)

System.Math.Power(Dezimalwert, Dezimalexponent)

Power(Wert, Exponent)

Zuordnung bitweiser Operatoren

Bitweiser Operator Kanonische Funktion für nicht boolesche Operanden Kanonische Funktion für boolesche Operanden

Bitweiser AND-Operator

BitWiseAnd

op1 AND op2

Bitweiser OR-Operator

BitWiseOr

op1 OR op2

Bitweiser NOT-Operator

BitWiseNot

NOT(op)

Bitweiser XOR-Operator

BitWiseXor

((op1 AND NOT(op2)) OR (NOT(op1) AND op2))

Andere Zuordnung

Methode Kanonische Funktion

Guid.NewGuid()

NewGuid()

Siehe auch

Konzepte

LINQ to Entities