实体数据模型:命名空间

实体数据模型 (EDM) 中的命名空间是实体类型复杂类型关联的抽象容器。 EDM 中的命名空间类似于编程语言中的命名空间:它们为自己所包含的对象提供了上下文,并为消除具有相同名称(但包含在不同的命名空间中)的对象的歧义提供了一种方式。

示例

ADO.NET 实体框架使用一种称为概念架构定义语言 (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>

请参阅