Model EDM (Entity Data Model): Obory názvů

Obor názvů v modelu Entity Data Model (EDM) je abstraktní kontejner pro typy entit, komplexní typy a přidružení. Obory názvů v EDM se podobají oborům názvů v programovacím jazyce: poskytují kontext pro objekty, které obsahují, a poskytují způsob, jak nejednoznačit objekty se stejným názvem (ale jsou obsaženy v různých oborech názvů).

Příklad

ADO.NET Entity Framework používá jazyk specifický pro doménu (DSL) označovaný jako jazyk CSDL (Conceptual Schema Definition Language) k definování konceptuálních modelů. Následující kód CSDL používá obor názvů k identifikaci typu, který je definován v jiném konceptuálním modelu. Příklad definuje typ entity (Publisher), který má komplexní vlastnost typu (Address), která je importována z ExtendedBooksModel oboru názvů. Všimněte si, že Using element označuje, že obor názvů byl importován. Všimněte si také, že typ Address vlastnosti je definován pomocí jeho plně kvalifikovaného názvu (ExtendedBooksModel.Address), který označuje, že tento typ je definován v ExtendedBooksModel oboru názvů.

  <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>

Viz také