次の方法で共有


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

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

ファセットの正確な値と動作は、EDM 実装を使用するランタイム環境によって決まります。

小面 説明 対象
Collation プロパティの値に対して比較および順序付け操作を実行するときに使用する照合シーケンス (または並べ替えシーケンス) を指定します。 String
ConcurrencyMode プロパティの値をオプティミスティック コンカレンシー チェックに使用する必要があることを示します。 すべてのプリミティブ型プロパティ
Default インスタンス化時に値が指定されない場合に、プロパティの既定値を指定します。 すべてのプリミティブ型プロパティ
FixedLength プロパティ値の長さを変更できるかどうかを指定します。 BinaryString
MaxLength プロパティ値の最大長を指定します。 BinaryString
Nullable プロパティに null 値を設定できるかどうかを指定します。 すべてのプリミティブ型プロパティ
Precision Decimal型のプロパティの場合は、プロパティ値に使用できる桁数を指定します。 TimeDateTime、およびDateTimeOffset型のプロパティでは、プロパティ値の秒の小数部の桁数を指定します。 DateTimeDateTimeOffsetDecimalTime
Scale プロパティ値の小数点の右側の桁数を指定します。 10 進法
Unicode プロパティ値が Unicode として格納されているかどうかを示します。 String

ADO.NET Entity Framework では、概念スキーマ定義言語 (CSDL) と呼ばれるドメイン固有言語 (DSL) を使用して概念モデルを定義します。 次の CSDL では、 Book エンティティ型が定義されています。 ファセットは XML 属性として実装されることに注意してください。 ファセット値は、プロパティを null に設定できないこと、および Scale プロパティのPrecisionRevisionがそれぞれ 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>

こちらも参照ください