ファセット (Entity Data Model)

ファセットは、プリミティブ型のプロパティ定義の詳細を追加するために使用します。 プロパティ定義には、プロパティの型の情報が含まれますが、多くの場合、より詳しい情報が必要になります。 たとえば、概念モデルのエンティティ型に、値を null に設定できない String 型のプロパティが含まれる場合があります。 ファセットにより、このレベルの詳細を指定することができます。

下の表は、EDM でサポートされるファセットについて説明しています。

Ee382834.note(ja-jp,VS.100).gif注 :
ファセットの正確な値と動作は、EDM の実装を使用するランタイム環境によって決まります。

ファセット 説明 対象

Collation

プロパティの値に対して比較と順序付け操作を行うときに使用する照合順序 (または並べ替え順序) を指定します。

String

ConcurrencyMode

プロパティの値をオプティミスティック同時実行制御チェックに使用することを指定します。

すべてのプリミティブ型のプロパティ

Default

インスタンス化で値が指定されない場合のプロパティの既定値を指定します。

すべてのプリミティブ型のプロパティ

FixedLength

プロパティ値の長さを可変とすることができるかどうかを指定します。

BinaryString

MaxLength

プロパティ値の最大長を指定します。

BinaryString

Nullable

プロパティに null 値を指定できるかどうかを指定します。

すべてのプリミティブ型のプロパティ

Precision

Decimal 型のプロパティには、プロパティ値に格納できる桁数を指定します。 Time 型、DateTime 型、および DateTimeOffset 型のプロパティについては、プロパティ値の秒の小数点以下の有効桁数を指定します。

DateTimeDateTimeOffsetDecimalTime

Scale

プロパティ値の小数点の右側の桁数を指定します。

Decimal

Unicode

プロパティ値を Unicode として保存するかどうかを指定します。

String

ADO.NET Entity Framework では、概念スキーマ定義言語 (CSDL) と呼ばれるドメイン固有言語 (DSL) を使用して概念モデルを定義します。 次の CSDL は Book エンティティ型を定義しています。 ファセットは XML 属性として実装されています。 ファセット値は、プロパティ値を null に設定できないことと、Revision プロパティの ScalePrecision がそれぞれ 29 に設定されることを示します。

<EntityType Name="Book">
  <Key>
    <PropertyRef Name="ISBN" />
  </Key>
  <Property Type="String" Name="ISBN" Nullable="false" />
  <Property Type="String" Name="Title" Nullable="false" />
  <Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
  <NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
                      FromRole="Book" ToRole="Publisher" />
  <NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
                      FromRole="Book" ToRole="Author" />
</EntityType>

参照

概念

Entity Data Model キーの概念
Entity Data Model