Data Provider for .NET Guide (v11)

ADO.NET Entity Framework の使用

ADO.NET Entity Framework を使用すると、開発者はリレーショナル ストレージ スキーマに対して直接プログラミングする代わりに、概念アプリケーション モデルに対してプログラミングすることで、データ アクセス アプリケーションを作成できます。

Pervasive データ型から単純型へのマッピング

15 では、次のように列が定義されています。

16 は、EDM 単純型から Pervasive データ型へのマッピングを示しています。列は次のように定義されています。

EDM 正規関数から Pervasive 関数へのマッピング

ADO.NET Entity Framework は、エンティティ データ モデル(EDM)正規関数を Pervasive PSQL 用 ADO.NET Entity Framework データ プロバイダーの対応するデータ ソース機能に変換します。これによって、全データ ソースに共通する形式で表現される関数を呼び出すことができます。

これらの正規関数はデータ ソースから独立しているため、正規関数の引数の型と戻り値の型は、EDM の型の語句で定義されます。Entity SQL クエリで正規関数を使用すると、データ ソースで適切な関数が呼び出されます。

すべての正規関数には、ヌルが入力された場合の動作とエラー状況が明示的に指定されています。ただし、ADO.NET Entity Framework はこの動作を実行しません。詳細は、http://msdn.microsoft.com/ja-jp/library/bb738626.aspx で入手できます。

集計正規関数

17 は、EDM 集計正規関数から Pervasive 関数へのマッピングを示します。

表 17 集計正規関数のマッピング
集計正規関数
Pervasive 関数
Avg(expression)
avg(expression)
BigCount(expression)
count(expression)
Count(expression)
count(expression)
Max(expression)
max(expression)
Min(expression)
min(expression)
StDev(expression)
stdev(expression)
StDevP(expression)1
stdevp(expression)
Sum(expression)
sum(expression)
Var(expression)1
var(expression)
VarP(expression)1
varp(expression)
1 Pervasive PSQL v11.30 Update 4(May 2013)が必要です。

数学正規関数

18 は、EDM 数学正規関数から Pervasive PSQL 関数へのマッピングを示します。ただし、処理する列が decimal 値または integer 値のみを含んでいる場合に使用される関数を対象としています。

詳細については、「数値関数」を参照してください。

表 18 数学正規関数のマッピング
数学正規関数
Pervasive 関数
Abs(value)
abs(value)
Ceiling(value)
ceiling(value)
Floor(value)
floor(value)
Power(value, exponent)
power(value, exponent)
Round(value)
round(numeric_expression1, integer_expression2)
Round(value, digits)
round(value, digits)
Truncate(value, digits)
truncate(value, digits)

日付と時刻の正規関数

19 は、EDM の日付と時刻の正規関数から Pervasive 関数へのマッピングを示します。これらの関数は、DATE や TIME などのデータ型から成るデータの生成、処理、および操作を行います。

表 19 日付と時刻の正規関数のマッピング
日付と時刻の正規関数
Pervasive 関数
AddNanoseconds(expression, number)
dateadd(millisecond, number/1000000)
AddMicroseconds(expression, number)
dateadd(millisecond, number/1000)
AddMilliseconds(expression, number)
dateadd(millisecond, number)
AddSeconds(expression, number)
dateadd(second, number)
AddMinutes(expression, number)
dateadd(minute, number)
AddHours(expression, number)
dateadd(hour, number)
AddDays(expression, number)
dateadd(day, number)
AddMonths(expression, number)
dateadd(month, number)
AddYears(expression, number)
dateadd(year, number)
CreateDateTime(year, month, day, hour, minute, second)
datetimefromparts(year, month, day, hour, minute, second, 0)
CreateDateTimeOffset(year, month, day, hour, minute, second, tzoffset)1
datetimeoffsetfromparts(year, month, day, hour, minute, second, tzoffset)
CreateTime(hour, minute, second)1
timefromparts(hour, minute, second, 0, 0)
CurrentDateTime()
now()
CurrentDateTimeOffset()
sysdatetimeoffset()
CurrentUtcDateTime()
current_timestamp()
Day(expression)
datepart(day, expression)
DayOfYear(startexpression, endexpression)
dayofyear(expression)
DiffNanoSeconds(startexpression, endexpression)
datediff(millisecond, startexpression, endexpression)*1000000
DiffMilliSeconds(startexpression, endexpression)
datediff(millisecond, startexpression, endexpression)
DiffMicroSeconds(startexpression, endexpression)
datediff(millisecond, startexpression, endexpression)*1000
DiffSeconds(startexpression, endexpression)
datediff(second, startexpression, endexpression)
DiffMinutes(startexpression, endexpression)
datediff(minute, startexpression, endexpression)
DiffHours(startexpression, endexpression)
datediff(hour, startexpression, endexpression)
DiffDays(startexpression, endexpression)
datediff(day, startexpression, endexpression)
DiffMonths(startexpression, endexpression)
datediff(month, startexpression, endexpression)
DiffYears(startexpression, endexpression)
datediff(year, startexpression, endexpression)
GetTotalOffsetMinutes(DateTime Offset)
datepart(tzoffset, expression)
Year(expression)
datepart(year, expression)
Month(expression)
datepart(month, expression)
Day(expression)
datepart(day, expression)
Hour(expression)
datepart(hour, expression)
Minute(expression)
datepart(minute, expression)
Second(expression)
datepart(second, expression)
Millisecond(expression)
datepart(millisecond, expression)
TruncateTime(expression)
convert(expression, SQL_DATE)
1 Pervasive PSQL v11.30 Update 4(May 2013)が必要です。

ビット単位の正規関数

20 は、EDM ビット単位の正規関数から Pervasive PSQL 関数へのマッピングを示します。

表 20 ビット単位の正規関数のマッピング
ビット単位の正規関数
Pervasive 関数
BitWiseAnd(value1, value2)
bit_and(value1, value2)
BitWiseNot(value)
bit_compliment
BitWiseOr(value1, value2)
bit_or
BitWiseXor(value1, value2)
bit_xor

文字列正規関数

21 は、EDM 文字列正規関数から Pervasive PSQL 関数へのマッピングを示します。

表 21 文字列正規関数のマッピング
文字列正規関数
Pervasive PSQL 関数
Concat(string1, string2)
concat(string1, string2)
Contains(string, target)
contains(string, target)
EndsWith(string, target)
endswith(string, target)
IndexOf(target, string2)
instr(target, string2)
Left(string1, length)
left(string1, length)
Length(string)
length(string)
LTrim(string)
ltrim(string)
Trim(string)
trim(BOTH FROM string)
Replace(string1, string2, string3)
replace(string1, string2, string3)
Reverse(string)
reverse(string)
RTrim(string)
rtrim(string)
StartsWith(string, target)
startswith(string, target)
Substring(string, start, length)
INCOMPLETE regexpr_substr(...)
ToLower(string)
lower(string)
ToUpper(string)
upper(string)

その他の正規関数

22 は、その他の正規関数から Pervasive PSQL 関数へのマッピングを示します。

表 22 その他の正規関数のマッピング
その他の正規関数
Pervasive PSQL 関数
NewGuid()
newid()


パフォーマンスに関する考慮点

Entity Framework 機能の拡張