Using Element (CSDL)
The Using element in conceptual schema definition language (CSDL) imports the contents of a conceptual model that exists in a different namespace. By setting the value of the Namespace attribute, you can refer to entity types, complex types, and association types that are defined in another conceptual model. More than one Using element can be a child of a Schema element.
Note
The Using element in CSDL does not function exactly like a using statement in a programming language. By importing a namespace with a using statement in a programming language, you do not affect objects in the original namespace. In CSDL, an imported namespace can contain an entity type that is derived from an entity type in the original namespace. This can affect entity sets declared in the original namespace. For more information about entity sets, see EntitySet Element.
The Using element can have the following child elements:
Documentation (zero or one elements allowed)
Annotation elements (zero or more elements allowed)
Applicable Attributes
The table below describes the attributes can be applied to the Using element.
Attribute Name | Is Required | Value |
---|---|---|
Namespace |
Yes |
The name of the imported namespace. |
Alias |
Yes |
An identifier used in place of the namespace name. Although this attribute is required, it is not required that it be used in place of the namespace name to qualify object names. |
Note
Any number of annotation attributes (custom XML attributes) may be applied to the Using element. However, custom attributes may not belong to any XML namespace that is reserved for CSDL. The fully-qualified names for any two custom attributes cannot be the same.
Example
The following example demonstrates the Using element being used to import a namespace that is defined elsewhere. Note that the namespace for the Schema element shown is BooksModel
. The Address
property on the Publisher
EntityType is a complex type that is defined in the ExtendedBooksModel
namespace (imported with the Using element).
<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>
See Also
Concepts
Entity Framework Overview
CSDL Specification
Schema Element (CSDL)
Other Resources
CSDL, SSDL, and MSL Specifications
ADO.NET Entity Data Model Tools
Entity Data Model: Namespaces