实体数据模型(EDM)中的命名空间是实体类型、复杂类型和关联的抽象容器。 EDM中的命名空间与编程语言中的命名空间类似:它们为所包含的对象提供上下文,并提供了一种方法来消除名称相同但位于不同命名空间中的对象之间的混淆。
示例:
ADO.NET Entity Framework 使用称为概念架构定义语言(CSDL)的特定于域的语言(DSL)来定义概念模型。 以下 CSDL 代码使用命名空间来标识在不同概念模型中定义的类型。 该示例定义一个实体类型(Publisher
),该实体类型具有从Address
命名空间导入的复杂类型属性(ExtendedBooksModel
)。 请注意,该 Using
元素指示已导入命名空间。 另请注意,该属性的类型 Address
是使用其完全限定名称(ExtendedBooksModel.Address
)定义的,指示此类型在命名空间中 ExtendedBooksModel
定义。
<Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm"
xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration"
xmlns:store="http://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>