 |
Data Provider for .NET Guide (v11) |
 |
|
ADO.NET Entity Framework の使用
ADO.NET Entity Framework を使用すると、開発者はリレーショナル ストレージ スキーマに対して直接プログラミングする代わりに、概念アプリケーション モデルに対してプログラミングすることで、データ アクセス アプリケーションを作成できます。
Pervasive データ型から単純型へのマッピング
表 11 では、次のように列が定義されています。
- [Pervasive データベース データ型]列は、ネイティブなデータ型の名前を示しています。
- [SSDL データ型]列は、ストア スキーマ定義言語(SSDL)ファイルで使用されるデータ型を示しています。ストレージ メタデータ スキーマは、EDM で構築されたアプリケーションのデータを保持する、データベースの形式的記述です。
- [EDM 単純型]列は、DataReader の使用時に、この型の列へのアクセスに使用する必要があるメソッドを示します。
表 11 Pervasive データ型から EDM 単純型へのマッピング
Pervasive データベース データ型
|
SSDL データ型
|
EDM 単純型
|
BFLOAT4
|
bfloat4
|
Single
|
BFLOAT8
|
bfloat8
|
Double
|
BIGINT
|
bigint
|
Int64
|
BINARY
|
binary
|
Binary
|
BIT
|
bit
|
Boolean
|
CHAR
|
char
|
String
|
CURRENCY
|
currency
|
Decimal
|
DATE
|
Date
|
DateTime
|
DATETIME
|
DateTime
|
DateTime
|
DECIMAL
|
decimal
|
Decimal
|
DOUBLE
|
double
|
Double
|
FLOAT
|
float
|
Single
|
IDENTITY
|
identity
|
Int32
|
INTEGER
|
integer
|
Int32
|
LONGVARBINARY
|
longvarbinary
|
Binary
|
LONGVARCHAR
|
longvarchar
|
String
|
MONEY
|
money
|
Decimal
|
NUMERIC
|
numeric
|
Decimal
|
NUMERICSA
|
decimalsa
|
Decimal
|
NUMERICSTS
|
decimalsts
|
Decimal
|
REAL
|
real
|
Single
|
TIME
|
time
|
Time
|
TIMESTAMP
|
timestamp
|
Datetime
|
TINYINT
|
tinyint
|
Byte
|
UBIGINT
|
ubigint
|
Decimal
|
UNIQUEIDENTIFIER
|
guid
|
Guid
|
UINTEGER
|
uinteger
|
Int64
|
USMALLINT
|
usmallint
|
Int32
|
UTINYINT
|
UTINYINT
|
Int16
|
VARCHAR
|
varchar
|
String
|
表 12 は、EDM 単純型から Pervasive データ型へのマッピングを示しています。列は次のように定義されています。
- [EDM 単純型]列は、DataReader の使用時に、この型の列へのアクセスに使用する必要があるメソッドを示します。
- [SSDL データ型]列は、ストア スキーマ定義言語(SSDL)ファイルで使用されるデータ型を示しています。ストレージ メタデータ スキーマは、EDM で構築されたアプリケーションのデータを保持する、データベースの形式的記述です。
- [Pervasive データベース データ型]列は、ネイティブなデータ型の名前を示しています。
表 12 EDM 単純型から Pervasive データ型へのマッピング
EDM 単純型
|
SSDL データ型
|
Pervasive データベース データ型
|
Binary
|
binary
|
BINARY
|
Binary
|
longvarbinary
|
LONGVARBINARY
|
Boolean
|
bit
|
BIT
|
Byte
|
tinyint
|
TINYINT
|
Datetime
|
timestamp
|
TIMESTAMP
|
DateTime
|
date
|
DATE
|
DateTime
|
datetime
|
DATETIME
|
Decimal
|
currency
|
CURRENCY
|
Decimal
|
decimal
|
DECIMAL
|
Decimal
|
money
|
MONEY
|
Decimal
|
numeric
|
NUMERIC
|
Decimal
|
numericsa
|
NUMERICSA
|
Decimal
|
numericsts
|
NUMERICSTS
|
Decimal
|
ubigint
|
UBIGINT
|
Double
|
bfloat8
|
BFLOAT8
|
Double
|
double
|
DOUBLE
|
Guid
|
guid
|
UNIQUEIDENTIFIER
|
Int16
|
utinyint
|
UTINYINT
|
Int32
|
identity
|
IDENTITY
|
Int32
|
integer
|
INTEGER
|
Int32
|
usmallint
|
USMALLINT
|
Int64
|
bigint
|
BIGINT
|
Int64
|
uinteger
|
UINTEGER
|
Single
|
bfloat4
|
BFLOAT4
|
Single
|
float
|
FLOAT
|
Single
|
real
|
REAL
|
String
|
char
|
CHAR
|
String
|
longvarchar
|
LONGVARCHAR
|
String
|
varchar
|
VARCHAR
|
Time
|
time
|
TIME
|
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 で入手できます。
集計正規関数
表 13 は、EDM 集計正規関数から Pervasive 関数へのマッピングを示します。
表 13 集計正規関数のマッピング
集計正規関数
|
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)
|
Sum(expression)
|
sum(expression)
|
数学正規関数
表 14 は、EDM 数学正規関数から Pervasive PSQL 関数へのマッピングを示します。ただし、処理する列が decimal 値または integer 値のみを含んでいる場合に使用される関数を対象としています。
詳細については、「数値関数」を参照してください。
表 14 数学正規関数のマッピング
数学正規関数
|
Pervasive 関数
|
Abs(value)
|
abs(value)
|
Ceiling(value)
|
ceiling(value)
|
Floor(value)
|
floor(value)
|
Round(value)
|
round(numeric_expression1, integer_expression2)
|
日付と時刻の正規関数
表 15 は、EDM の日付と時刻の正規関数から Pervasive 関数へのマッピングを示します。これらの関数は、DATE や TIME などのデータ型から成るデータの生成、処理、および操作を行います。
表 15 日付と時刻の正規関数のマッピング
日付と時刻の正規関数
|
Pervasive 関数
|
Year(expression)
|
extract(YEAR from expression)
|
Month(expression)
|
extract(MONTH from expression)
|
Day(expression)
|
extract(DAY from expression)
|
Hour(expression)
|
extract(HOUR from expression)
|
Minute(expression)
|
extract(MINUTE from expression)
|
Second(expression)
|
extract(SECOND from expression)
|
Millisecond(expression)
|
サポートされていません
|
GetTotalOffsetMinutes(DateTime Offset)
|
サポートされていません
|
CurrentDateTime
|
current_date
|
CurrentDateTimeOffset
|
datepart(tz_offset(SESSIONTIMEZONE) + current_date
|
CurrentUtcDateTime
|
sys_extract_utc
|
ビット単位の正規関数
表 16 は、EDM ビット単位の正規関数から Pervasive PSQL 関数へのマッピングを示します。
表 16 ビット単位の正規関数のマッピング
ビット単位の正規関数
|
Pervasive 関数
|
BitWiseAnd(value1, value2)
|
bit_and(value1, value2)
|
BitWiseNot(value)
|
bit_compliment
|
BitWiseOr(value1, value2)
|
bit_or
|
BitWiseXor(value1, value2)
|
bit_xor
|
文字列正規関数
表 17 は、EDM 文字列正規関数から Pervasive PSQL 関数へのマッピングを示します。
表 17 文字列正規関数のマッピング
文字列正規関数
|
Pervasive PSQL 関数
|
Concat(string1, string2)
|
concat(string1, string2)
|
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)
|
Substring(string, start, length)
|
INCOMPLETE regexpr_substr(...)
|
ToLower(string)
|
lower(string)
|
ToUpper(string)
|
upper(string)
|
 パフォーマンスに関する考慮点 |
 Entity Framework 機能の拡張 |
|