ファセット (CSDL)
概念スキーマ定義言語 (CSDL) のファセットは、エンティティ型と複合型のプロパティに対する制約を表します。ファセットは次の CSDL 要素で XML 属性として使用されます。
次の表は、CSDL でサポートされるファセットについて説明しています。いずれのファセットもオプションです。次に示すファセットの一部は、Entity Framework が概念モデルからデータベースを生成するときに使用されます。詳細については、「データベース生成ウィザード」を参照してください。
注意
概念モデルでのデータ型については、「概念モデルの型 (CSDL)」を参照してください。
ファセット |
説明 |
適用対象 |
データベースの生成に使用 |
ランタイムで使用 |
---|---|---|---|---|
Collation |
プロパティの値に対して比較と順序付け操作を行うときに使用する照合順序 (または並べ替え順序) を指定します。 |
Edm.String |
○ |
× |
ConcurrencyMode |
プロパティの値をオプティミスティック同時実行制御チェックに 使用することを指定します。 |
すべての EDMSimpleType プロパティ |
× |
○ |
Default |
インスタンス化で値が指定されない場合のプロパティの 既定値を指定します。 |
すべての EDMSimpleType プロパティ |
○ |
○ |
FixedLength |
プロパティ値の長さを可変とすることができるかどうかを指定します。 |
Edm.Binary, Edm.String |
○ |
× |
MaxLength |
プロパティ値の最大長を指定します。 |
Edm.Binary, Edm.String |
○ |
× |
Nullable |
プロパティに null 値を指定できるかどうかを指定します。 |
すべての EDMSimpleType プロパティ |
○ |
○ |
Precision |
Decimal 型のプロパティには、プロパティ値の桁数を指定します。 Time、DateTime、および DateTimeOffset 型のプロパティには、 プロパティ値の秒の小数点以下の有効桁数を指定します。 |
Edm.DateTime, Edm.DateTimeOffset, Edm.Decimal および Edm.Time |
○ |
× |
Scale |
プロパティ値の小数点の右側の桁数を指定します。 |
Edm.Decimal |
○ |
× |
Unicode |
プロパティ値を Unicode として保存するかどうかを指定します。 |
Edm.String |
○ |
○ |
メモ データベースを概念モデルから生成するときには、データベース生成ウィザードが Property 要素の StoreGeneratedPattern 属性の値を認識します。ただし、名前空間 https://schemas.microsoft.com/ado/2009/02/edm/annotation にある場合に限ります。属性でサポートされる値は、Identity と Computed です。Identity の値は、データベースで生成される ID 値を持つデータベース列を生成します。Computed の値は、データベースで計算される値を持つ列を生成します。
例
エンティティ型のプロパティに適用されるファセットの例を次に示します。
<EntityType Name="Product">
<Key>
<PropertyRef Name="ProductId" />
</Key>
<Property Type="Int32"
Name="ProductId" Nullable="false"
a:StoreGeneratedPattern="Identity"
xmlns:a="https://schemas.microsoft.com/ado/2009/02/edm/annotation" />
<Property Type="String"
Name="ProductName"
Nullable="false"
MaxLength="50" />
<Property Type="String"
Name="Location"
Nullable="true"
MaxLength="25" />
</EntityType>
詳細については、「Property 要素 (CSDL)」を参照してください。
関連項目
参照
System.Data.Metadata.Edm.Facet