次の方法で共有


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 例外がスローされます。

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) 長さ(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 '%value%' など value が定数ではない場合、IndexOf(this, value) > 0 にマップされます
Boolean EndsWith(String value) this ' % value' など value が定数ではない場合、Right(this, length(value)) = value にマップされます。
Boolean StartsWith(String value) this 'value%' など value が定数ではない場合、IndexOf(this, value) = 1 にマップされます。
長さ 長さ(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)))) startIndex が 0 以上の整数である場合、サポートされるのは Remove(count, count) だけです。
System.String Replace(String oldValue, String newValue) 置換(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, _

省略可能な ByVal FirstDayOfWeekValue FirstDayOfWeek = VbSunday、 _

省略可能である ByVal FirstWeekOfYearValue を 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(this)
時間 Hour(this)
ミリセカント ミリ秒 (this)
Minute(this)
Month(this)
Second(this)
Year(this)

System.DateTimeOffset メソッド (インスタンス) のマッピング

示されているプロパティに対する get メソッドのマッピングを示します。

System.DateTimeOffset メソッド (インスタンス) 正規関数 メモ
一日 Day(this) SQL Server 2005 ではサポートされません。
時間 Hour(this) SQL Server 2005 ではサポートされません。
ミリセカント ミリ秒 (this) SQL Server 2005 ではサポートされません。
Minute(this) SQL Server 2005 ではサポートされません。
Month(this) SQL Server 2005 ではサポートされません。
Second(this) SQL Server 2005 ではサポートされません。
Year(this) SQL Server 2005 ではサポートされません。

比較した Equals オブジェクトが等しい場合、true メソッドは DateTimeOffset を返します。それ以外の場合は false を返します。 比較した CompareTo オブジェクトが等しい、より大きい、またはより小さい場合、DateTimeOffset メソッドはそれぞれ 0、1、または -1 を返します。

System.DateTimeOffset メソッド (静的) のマッピング

示されているプロパティに対する get メソッドのマッピングを示します。

System.DateTimeOffset メソッド (静的) 正規関数 メモ
System.DateTimeOffset.Now() CurrentDateTimeOffset() SQL Server 2005 ではサポートされません。

System.TimeSpan メソッド (インスタンス) のマッピング

示されているプロパティに対する get メソッドのマッピングを示します。

System.TimeSpan メソッド (インスタンス) 正規関数 メモ
時間 Hour(this) SQL Server 2005 ではサポートされません。
ミリ秒 ミリ秒 (this) SQL Server 2005 ではサポートされません。
Minute(this) SQL Server 2005 ではサポートされません。
秒数 Second(this) SQL Server 2005 ではサポートされません。

比較した Equals オブジェクトが等しい場合、true メソッドは TimeSpan を返します。それ以外の場合は false を返します。 比較した CompareTo オブジェクトが等しい、より大きい、またはより小さい場合、TimeSpan メソッドはそれぞれ 0、1、または -1 を返します。

DatePart 関数

DatePart 関数は、Interval の値に応じて、複数の異なる正規関数のいずれかにマップされます。 サポートされている各 Interval 値に対応する正規関数のマッピングを次の表に示します。

Interval 値 正規関数
日付間隔.年 Year()
DateInterval.Month Month()
DateInterval.Day Day()
DateInterval.Hour Hour()
DateInterval.Minute Minute()
DateInterval.Second Second()

数学関数のマッピング

CLR メソッド 正規関数
System.Decimal.Ceiling(Decimal d) 天井(d)
System.Decimal.Floor(Decimal d) Floor(d)
System.Decimal.Round(Decimal d) 丸い(d)
System.Math.Ceiling(Decimal d) 天井(d)
System.Math.Floor(Decimal d) Floor(d)
System.Math.Round(Decimal d) 丸い(d)
System.Math.Ceiling(Double a) 天井(a)
System.Math.Floor(Double a) Floor(a)
System.Math.Round(Double a) 丸い(a)
System.Math.Round(Double 値, Int16 digits) Round(value, digits)
System.Math.Round(Double 値, Int32 digits) Round(value, digits)
System.Math.Round(Decimal value, Int16 digits) Round(value, digits)
System.Math.Round(10進数の値, 整数, 桁数) Round(value, digits)
System.Math.Abs(Int16 value) Abs(value)
System.Math.Abs(Int32 value) Abs(value)
System.Math.Abs(Int64 value) Abs(value)
System.Math.Abs(Byte value) Abs(value)
System.Math.Abs(単一値) Abs(value)
System.Math.Abs(Double 値) Abs(value)
System.Math.Abs(10進数の値) Abs(value)
System.Math.Truncate(Double 値, Int16 digits) Truncate(value, digits)
System.Math.Truncate(Double 値, Int32 digits) Truncate(value, digits)
System.Math.Truncate(Decimal value, Int16 digits) Truncate(value, digits)
System.Math.Truncate(Decimal value, Int32 digits) Truncate(value, digits)
System.Math.Power(Int32 value, Int64 exponent) Power(value, exponent)
System.Math.Power(Int32 value, Double exponent) Power(value, exponent)
System.Math.Power(Int32 value, Decimal exponent) Power(value, exponent)
System.Math.Power(Int64 value, Int64 exponent) Power(value, exponent)
System.Math.Power(Int64 value, Double exponent) Power(value, exponent)
System.Math.Power(Int64 value, Decimal exponent) Power(value, exponent)
System.Math.Power(Double 値, Int64 指数) 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(Decimal value, Int64 exponent) Power(value, exponent)
System.Math.Power(Decimal value, Double exponent) Power(value, exponent)
System.Math.Power(Decimal value, Decimal exponent) Power(value, exponent)

ビット演算子のマッピング

ビット演算子 非ブール型のオペランドの正規関数 ブール型のオペランドの正規関数
ビット演算子 AND ビットワイズアンド op1 と op2
ビット演算子 OR BitWiseOr op1 または op2
ビット演算子 NOT BitWiseNot NOT(op)
ビット演算子 XOR BitWiseXor ((op1 AND NOT(op2)) OR (NOT(op1) AND op2))

その他のマッピング

メソッド 正規関数
Guid.NewGuid() NewGuid()

関連項目