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>