Using 要素 (CSDL)
概念スキーマ定義言語 (CSDL) の Using 要素は、別の名前空間に存在する概念モデルのコンテンツをインポートします。Namespace 属性の値を設定することにより、別の概念モデルで定義されているエンティティ型、複合型、およびアソシエーション型を参照することができます。1 つの Schema 要素に対して複数の Using 要素を子にすることができます。
注意
CSDL の Using 要素の機能は、プログラミング言語における using ステートメントとは完全に同じではありません。プログラミング言語での using ステートメントで名前空間をインポートしても、元の名前空間のオブジェクトが影響を受けることはありません。CSDL では、インポートされた名前空間に、元の名前空間にあるエンティティ型から派生したエンティティ型が含まれている場合があります。これは、元の名前空間で宣言されたエンティティ セットに影響を及ぼすことがあります。エンティティ セットの詳細については、「EntitySet 要素」を参照してください。
Using 要素には、次の子要素を含めることができます。
Documentation (0 または 1 つの要素を含めることができます)。
Annotation 要素 (0 個以上の要素を含めることができます)。
適用可能な属性
Using 要素に適用できる属性を次の表に示します。
属性名 |
必須 |
値 |
---|---|---|
Namespace |
はい |
インポートされる名前空間の名前。 |
Alias |
はい |
名前空間の名前の代わりに使用される識別子。この属性は必須ですが、オブジェクト名を修飾するために名前空間名の代わりに使用することは必須ではありません。 |
注意
Using 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は CSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。
例
次の例は、Using 要素を使用して、他の場所で定義された名前空間をインポートする方法を示すものです。示されている Schema 要素の名前空間が BooksModel であることに注目してください。PublisherEntityType 上の Address プロパティは、複合型です。これは、ExtendedBooksModel 名前空間で定義されたものです (Using 要素でインポート)。
<Schema xmlns="https://schemas.microsoft.com/ado/2008/09/edm"
xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
xmlns:store="https://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator"
Namespace="BooksModel" Alias="Self">
<Using Namespace="BooksModel.Extended" Alias="BMExt" />
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
</EntityContainer>
<EntityType Name="Publisher">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Type="Int32" Name="Id" Nullable="false" />
<Property Type="String" Name="Name" Nullable="false" />
<Property Type="BMExt.Address" Name="Address" Nullable="false" />
</EntityType>
</Schema>