CLR 方法與標準函式的對應
Entity Framework 提供一組標準函式,可實作在許多資料庫系統常見的功能,例如字串操作和數學函式。 這樣就可以讓開發人員以廣泛的資料庫系統為相標。 從某種查詢技術 (例如 LINQ to Entities) 呼叫時,這些標準函式會轉譯成所使用之提供者的正確對應存放函式。 這樣就可以利用跨資料來源的通用形式來表示函式引動過程,在不同的資料來源提供一致的查詢體驗。 如果運算元為數值型別,位元運算 AND、OR,、NOT 和 XOR 運算子也是對應到這些標準函式。 若為布林運算元,位元運算 AND、OR、NOT 和 XOR 運算子會計算這些運算元的邏輯 AND、OR、NOT 和 XOR 運算。 如需詳細資訊,請參閱標準函式 (Entity SQL)。
就 LINQ 案例而言,針對 Entity Framework 的查詢會透過標準函式將某些 CLR 方法對應到基礎資料來源。 在 LINQ to Entities 查詢中,不是明確對應到標準函式的任何方法呼叫,將會導致擲回執行階段 NotSupportedException 例外狀況 (Exception)。
System.String 方法 (靜態) 對應
System.String 方法 (靜態) | 標準函式 |
---|---|
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) |
= 運算子 |
Boolean IsNullOrEmpty(String value) |
(IsNull(value)) OR Length(value) = 0 |
Boolean op_Equality(String a, String b) |
= 運算子 |
Boolean op_Inequality(String a , String b) |
!= 運算子 |
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) |
System.String 方法 (執行個體) 對應
System.String 方法 (執行個體) | 標準函式 | 注意事項 |
---|---|---|
Boolean Contains(String value) |
this LIKE '%value%' |
如果 value 不是一個常數,則這會對應至 IndexOf(this, value) > 0 |
Boolean EndsWith(String value) |
this LIKE '%value' |
如果 value 不是一個常數,則這會對應至 Right(this, length(value)) = value。 |
Boolean StartsWith(String value) |
this LIKE 'value%' |
如果 value 不是一個常數,則這會對應至 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))) |
只有當 count 是大於或等於 0 的整數時,才支援 Remove(startIndex, count)。 |
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) |
= 運算子 |
System.DateTime 方法 (靜態) 對應
System.DateTime 方法 (靜態) | 標準函式 | 附註 |
---|---|---|
Boolean Equals(DateTime t1, DateTime t2) |
= 運算子 |
|
System.DateTime.Now |
CurrentDateTime() |
|
System.DateTime.UtcNow |
CurrentUtcDateTime() |
|
Boolean op_Equality(DateTime d1, DateTime d2) |
= 運算子 |
|
Boolean op_GreaterThan(DateTime t1, DateTime t2) |
> 運算子 |
|
Boolean op_GreaterThanOrEqual(DateTime t1, DateTime t2) |
>= 運算子 |
|
Boolean op_Inequality(DateTime t1, DateTime t2) |
!= 運算子 |
|
Boolean op_LessThan(DateTime t1, DateTime t2) |
< 運算子 |
|
Boolean op_LessThanOrEqual(DateTime t1, DateTime t2) |
<= 運算子 |
|
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 |
如需詳細資訊,請參閱「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 方法 (執行個體) 對應
System.DateTime 方法 (執行個體) | 標準函式 |
---|---|
Boolean Equals(DateTime value) |
= 運算子 |
Day |
Day(this) |
Hour |
Hour(this) |
Millisecond |
Millisecond(this) |
Minute |
Minute(this) |
Month |
Month(this) |
Second |
Second(this) |
Year |
Year(this) |
System.DateTimeOffset 方法 (執行個體) 對應
為列出之屬性上的 get 方法顯示的對應。
System.DateTimeOffset 方法 (執行個體) | 標準函式 | 注意事項 |
---|---|---|
Day |
Day(this) |
對 SQL Server 2005 不支援。 |
Hour |
Hour(this) |
對 SQL Server 2005 不支援。 |
Millisecond |
Millisecond(this) |
對 SQL Server 2005 不支援。 |
Minute |
Minute(this) |
對 SQL Server 2005 不支援。 |
Month |
Month(this) |
對 SQL Server 2005 不支援。 |
Second |
Second(this) |
對 SQL Server 2005 不支援。 |
Year |
Year(this) |
對 SQL Server 2005 不支援。 |
注意: |
---|
如果比較的 DateTimeOffset 物件相等,Equals 方法會傳回 true;否則會傳回 false。CompareTo 方法會傳回 0、1 或 -1,需視比較的 DateTimeOffset 物件是否分別為相等、大於或小於而定。 |
System.DateTimeOffset 方法 (靜態) 對應
為列出之屬性上的 get 方法顯示的對應。
System.DateTimeOffset 方法 (靜態) | 標準函式 | 注意事項 |
---|---|---|
System.DateTimeOffset.Now() |
CurrentDateTimeOffset() |
對 SQL Server 2005 不支援。 |
System.TimeSpan 方法 (執行個體) 對應
為列出之屬性上的 get 方法顯示的對應。
System.TimeSpan 方法 (執行個體) | 標準函式 | 注意事項 |
---|---|---|
Hours |
Hour(this) |
對 SQL Server 2005 不支援。 |
Milliseconds |
Millisecond(this) |
對 SQL Server 2005 不支援。 |
Minutes |
Minute(this) |
對 SQL Server 2005 不支援。 |
Seconds |
Second(this) |
對 SQL Server 2005 不支援。 |
注意: |
---|
如果比較的 TimeSpan 物件相等,Equals 方法會傳回 true;否則會傳回 false。CompareTo 方法會傳回 0、1 或 -1,需視比較的 TimeSpan 物件是否分別為相等、大於或小於而定。 |
DatePart 函式
DatePart 函式會對應到幾個不同標準函式的其中一個,根據 Interval 的值而定。 下表顯示支援之 Interval 值的標準函式對應:
間隔值 | 標準函式 |
---|---|
DateInterval.Year |
Year() |
DateInterval.Month |
Month() |
DateInterval.Day |
Day() |
DateInterval.Hour |
Hour() |
DateInterval.Minute |
Minute() |
DateInterval.Second |
Second() |
數學函式對應
CLR 方法 | 標準函式 |
---|---|
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(雙精度浮點數值、Int16 數字) |
Round(值、數字) |
System.Math.Round(雙精度浮點數值、Int32 數字) |
Round(值、數字) |
System.Math.Round(十進位值、Int16 數字) |
Round(值、數字) |
System.Math.Round(十進位值、Int32 數字) |
Round(值、數字) |
System.Math.Abs(Int16 值) |
Abs(值) |
System.Math.Abs(Int32 值) |
Abs(值) |
System.Math.Abs(Int64 值) |
Abs(值) |
System.Math.Abs(位元組值) |
Abs(值) |
System.Math.Abs(單一值) |
Abs(值) |
System.Math.Abs(雙精度浮點數值) |
Abs(值) |
System.Math.Abs(十進位值) |
Abs(值) |
System.Math.Truncate(雙精度浮點數值、Int16 數字) |
Truncate(值、數字) |
System.Math.Truncate(雙精度浮點數值、Int32 數字) |
Truncate(值、數字) |
System.Math.Truncate(十進位值、Int16 數字) |
Truncate(值、數字) |
System.Math.Truncate(十進位值、Int32 數字) |
Truncate(值、數字) |
System.Math.Power(Int32 值、Int64 指數) |
Power(值、指數) |
System.Math.Power(Int32 值、雙精度浮點指數) |
Power(值、指數) |
System.Math.Power(Int32 值、十進位指數) |
Power(值、指數) |
System.Math.Power(Int64 值、Int64 指數) |
Power(值、指數) |
System.Math.Power(Int64 值、雙精度浮點指數) |
Power(值、指數) |
System.Math.Power(Int64 值、十進位指數) |
Power(值、指數) |
System.Math.Power(雙精度浮點數值、Int64 指數) |
Power(值、指數) |
System.Math.Power(雙精度浮點數值、雙精度浮點指數) |
Power(值、指數) |
System.Math.Power(雙精度浮點數值、十進位指數) |
Power(值、指數) |
System.Math.Power(十進位值、Int64 指數) |
Power(值、指數) |
System.Math.Power(十進位值、雙精度浮點指數) |
Power(值、指數) |
System.Math.Power(十進位值、十進位指數) |
Power(值、指數) |
位元運算子對應
位元運算子 | 非布林運算元的標準函式 | 布林運算元的標準函式 |
---|---|---|
位元 AND 運算子 |
BitWiseAnd |
op1 AND op2 |
位元 OR 運算子 |
BitWiseOr |
op1 OR op2 |
位元 NOT 運算子 |
BitWiseNot |
NOT(op) |
位元 XOR 運算子 |
BitWiseXor |
((op1 AND NOT(op2)) OR (NOT(op1) AND op2)) |
其他對應
方法 | 標準函式 |
---|---|
Guid.NewGuid() |
NewGuid() |