 |
Data Provider for .NET Guide (v11) |
 |
|
データ型および関数のマッピング
ADO.NET Entity Framework を使用すると、開発者はリレーショナル ストレージ スキーマに対して直接プログラミングする代わりに、概念アプリケーション モデルに対してプログラミングすることで、データ アクセス アプリケーションを作成できます。
Database First の型マッピング
Database First モデルでは、データ プロバイダーはストア中心の型マッピング方式を使用します。このマッピングでは、Pervasive PSQL(ストア)型は、モデルの生成時に使用される EDM 型に影響を与えます。
Pervasive PSQL 型から EDM 型へのマッピングは、Pervasive PSQL 型から、Database First モデルで使用されるプリミティブ型へのマッピングを示しています。一部の Pervasive PSQL データ型はいくつかの異なる EDM 型にマップすることができます。デフォルト値は斜体で示されています。
列は次のように定義されています。
- [Pervasive PSQL 型]列は、ネイティブな型名を示しています。
- [ストア(SSDL)型]列は、ストア スキーマ定義言語(SSDL)ファイルで使用されるデータ型を示しています。ストレージ メタデータ スキーマは、EDM で構築されたアプリケーションのデータを保持する、データベースの形式的記述です。
- [PrimitiveTypeKind]列は、EDM アプリケーションを定義するのに使用されるエンティティのプロパティの、有効な内容を指定するために使用される共通のデータ プリミティブを示しています。
表 12 Pervasive PSQL 型から EDM 型へのマッピング
Pervasive PSQL 型
|
ストア(SSDL)型
|
PrimitiveTypeKind
|
BFLOAT4
|
BFloat4
|
Single
|
BFLOAT8
|
BFloat8
|
Double
|
BIGINT
|
Binint
|
Int64
|
BINARY
|
binary
|
Byte[]
|
BIT
|
Bit
|
Boolean
|
CHAR
|
Char
|
String
|
CURRENCY
|
Currency
|
Decimal
|
DATE
|
Date
|
DateTime
|
DECIMAL
|
Decimal
|
Decimal
|
DOUBLE
|
Double
|
Double
|
FLOAT
|
Float
|
Float
|
IDENTITY
|
Identity
|
Int32
|
INTEGER
|
Integer
|
Int32
|
LONGVARBINARY
|
LongVarBinary
|
Byte[]
|
LONGVARCHAR
|
LongVarChar
|
String
|
MONEY
|
Money
|
Decimal
|
NUMERIC
|
Decimal
|
Decimal
|
NUMERICSA
|
DecimalSA
|
Decimal
|
NUMERICSTS
|
DecimalSTS
|
Decimal
|
REAL
|
Real
|
Single
|
SMALLIDENTITY
|
SmallIdentity
|
Int16
|
ROWID
|
Rowid
|
Binary
|
SMALLINT
|
Smallint
|
Int16
|
TIME
|
Time
|
Time
|
DATETIME
|
DateTime
|
DateTime
|
TINYINT
|
TinyInt
|
SByte
|
UBIGINT
|
UBigInt
|
UInt64
|
UNIQUE_IDENTIFIER
|
Guid
|
Guid
|
UINTEGER
|
UInteger
|
UInt32
|
USMALLINT
|
USmallInt
|
UInt16
|
UTINYINT
|
UTinyInt
|
Byte
|
VARCHAR
|
Varchar
|
String
|
Model First の型マッピング
EDM 型から Pervasive PSQL 型へのマッピングは、モデル中心の型マッピングを示しています。このマッピングでは、EDM 単純型は、データベースの作成時に使用される Pervasive PSQL(ストア)型に影響を与えます。列は次のように定義されています。
- [PrimitiveTypeKind]列は、EDM アプリケーションを定義するのに使用されるエンティティのプロパティの、有効な内容を指定するために使用される共通のデータ プリミティブを示しています。
- [型マッピングに影響を与えるプロパティ値]列は、型マッピングに影響を及ぼす可能性のある、あらゆるプロパティ値を示しています。
- [ストア(SSDL)型]列は、ストア スキーマ定義言語(SSDL)ファイルで使用されるデータ型を示しています。ストレージ メタデータ スキーマは、EDM で構築されたアプリケーションのデータを保持する、データベースの形式的記述です。
- [Pervasive PSQL 型]列は、ネイティブな型名を示しています。
表 13 EDM 型から Pervasive PSQL 型へのマッピング
PrimitiveTypeKind
|
型マッピングに影響を与えるプロパティ値
|
ストア(SSDL)型
|
Pervasive PSQL 型
|
Binary
|
FixedLength:TRUE
FixedLength:FALSE
|
Binary
LongVarBinary
|
Binary(n)
LongVarBinary
|
Boolean
|
|
Boolean
|
Bit
|
Byte
|
|
Tinylint_as_byte
|
TinyInt
|
DateTime
|
|
DateTime
|
DateTime
|
Decimal
|
|
Decimal
|
Decimal
|
Double
|
|
Double
|
Double
|
Guid
|
|
Guid
|
Guid
|
Single
|
|
Float
|
Float
|
SByte
|
|
Smallint_as_Sbyte
|
Smallint
|
Int16
|
|
SmallInt
|
Smallint
|
Int32
|
|
Integer
|
Integer
|
Int64
|
|
Bigint
|
BigInt
|
String1,2
|
MaxLength= (1<=n<=8000)
Fixed Length=True
Unicode=True/False
|
Char
|
Char(n)
|
MaxLength= (1<=n<=8000)
Fixed Length=False
Unicode=True/False
|
Varchar
|
Varchar(n)
|
MaxLength= (>8000)
Fixed Length=False
Unicode=True
|
LongVarChar
|
LongVarchar
|
Time
|
|
Time
|
Time
|
DateTimeOffset
|
|
DateTime
|
DateTime
|
1 Pervasive PSQL エンジンは Unicode データ型をサポートしていません。そのため、Pervasive PSQL エンジン用に書かれたアプリケーションはすべて、Pervasive PSQL エンジンに Unicode データを格納しません。このような仮定の下に、Pervasive PSQL ADO.NET プロバイダーは、Unicode と 非 Unicode の両方の文字列型を Pervasive PSQL の同じネイティブ型にマップします。これにより、.NET の文字列型(デフォルトでは Unicode です)を CHAR または VARCHAR のいずれかに、その FIXED_LENGTH ファセットに基づいてマップすることが可能になります。ユーザーは、非 Unicode と明示的にマークするよう要求されません。
2 LONGVARCHAR マッピングの Unicode 値を True/False に設定します。
|
Code First の型マッピング
CLR 型から Code First モデルの Pervasive PSQL データ型へのマッピングは、モデル中心の型マッピングを示しています。このマッピングでは、CLR 型は、データベースの作成時に使用される Pervasive PSQL(ストア)型に影響を与えます。一部の CLR 型はいくつかの異なる Pervasive PSQL 型にマップすることができます。デフォルト値は斜体で示されています。).
列は次のように定義されています。
- [CLR 型]列は、共通言語ランタイムの型名を示しています。
- [Pervasive PSQL 型]列は、ネイティブな型名を示しています。
表 14 CLR 型から Code First モデルの Pervasive PSQL データ型へのマッピング
CLR 型
|
Pervasive PSQL データ型
|
Byte
|
BINARY
|
Boolean
|
BIT
|
Byte
|
TINYINT
|
DateTime
|
DATETIME
|
Decimal
|
DECIMAL
|
Double
|
DOUBLE
|
Guid
|
UNIQUEIDENTIFIER
BINARY
|
Single
|
FLOAT
|
Sbyte
|
SMALLINT
|
Int16
|
SMALLINT
|
Int32
|
INTEGER
|
Int64
|
BIGINT
|
String1
|
CHAR(n)
VARCHAR(n)
LONGVARCHAR
|
TimeSpan
|
TIME
|
DateTimeOffset
|
DateTime
|
1 Pervasive PSQL エンジンは Unicode データ型をサポートしていません。そのため、Pervasive PSQL エンジン用に書かれたアプリケーションはすべて、Pervasive PSQL エンジンに Unicode データを格納しません。このような仮定の下に、Pervasive PSQL ADO.NET プロバイダーは、Unicode と 非 Unicode の両方の文字列型を Pervasive PSQL の同じネイティブ型にマップします。これにより、.NET の文字列型(デフォルトでは Unicode です)を CHAR または VARCHAR のいずれかに、その FIXED_LENGTH ファセットに基づいてマップすることが可能になります。ユーザーは、非 Unicode と明示的にマークするよう要求されません。
|
 ADO.NET Entity Framework での列挙型の使用 |
 パフォーマンスに関する考慮点 |
|