共用方式為


標準函式的對應 CLR 方法

Entity Framework 提供一組標準函式,可實作在許多資料庫系統常見的功能,例如字串操作和數學函式。 這樣就可以讓開發人員以廣泛的資料庫系統為相標。 從某種查詢技術 (例如 LINQ to Entities) 呼叫時,這些標準函式會轉譯成所使用之提供者的正確對應存放函式。 這樣就可以利用跨資料來源的通用形式來表示函式引動過程,在不同的資料來源提供一致的查詢體驗。 如果運算元為數值型別,位元運算 AND、OR,、NOT 和 XOR 運算子也是對應到這些標準函式。 若為布林運算元,位元運算 AND、OR、NOT 和 XOR 運算子會計算這些運算元的邏輯 AND、OR、NOT 和 XOR 運算。 如需詳細資訊,請參閱標準函式

就 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(thisvalue) > 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(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(,count + startIndex +1, Length(thisthis) - (startIndex + count)) ) 只有當 startIndex 是大於或等於 0 的整數時,才支援 Remove(count, 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) >= operator
Boolean op_Inequality(DateTime t1, DateTime t2) != 運算子
Boolean op_LessThan(DateTime t1, DateTime t2) < 運算子
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
如需詳細資訊,請參閱「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 不支援。

注意

如果比較的 Equals 物件相等,true 方法會傳回 DateTimeOffset;否則會傳回 falseCompareTo 方法會傳回 0、1 或 -1,需視比較的 DateTimeOffset 物件是否分別為相等、大於或小於而定。

System.DateTimeOffset 方法 (靜態) 對應

為列出之屬性上的 get 方法顯示的對應。

System.DateTimeOffset 方法 (靜態) 標準函式 備註
System.DateTimeOffset.Now() CurrentDateTimeOffset() 對 SQL Server 2005 不支援。

System.TimeSpan 方法 (執行個體) 對應

為列出之屬性上的 get 方法顯示的對應。

System.TimeSpan 方法 (執行個體) 標準函式 備註
小時 Hour(this) 對 SQL Server 2005 不支援。
毫秒 Millisecond(this) 對 SQL Server 2005 不支援。
分鐘 Minute(this) 對 SQL Server 2005 不支援。
Second(this) 對 SQL Server 2005 不支援。

注意

如果比較的 Equals 物件相等,true 方法會傳回 TimeSpan;否則會傳回 falseCompareTo 方法會傳回 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(value)
System.Math.Abs(Int32 值) Abs(value)
System.Math.Abs(Int64 值) Abs(value)
System.Math.Abs(位元組值) Abs(value)
System.Math.Abs(單一值) Abs(value)
System.Math.Abs(雙精度浮點數值) Abs(value)
System.Math.Abs(十進位值) Abs(value)
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()

另請參閱