Entitetsdatamodell: Namnområden
Ett namnområde i entitetsdatamodellen (EDM) är en abstrakt container för entitetstyper, komplexa typer och associationer. Namnrymder i EDM liknar namnområden i ett programmeringsspråk: de ger kontext för de objekt som de innehåller och de ger ett sätt att skilja objekt som har samma namn (men som finns i olika namnområden).
Exempel
ADO.NET Entity Framework använder ett domänspecifikt språk (DSL) som kallas CSDL (Conceptual Schema Definition Language) för att definiera konceptuella modeller. Följande CSDL-kod använder ett namnområde för att identifiera en typ som definieras i en annan konceptuell modell. Exemplet definierar en entitetstyp (Publisher
) som har en komplex typegenskap (Address
) som importeras från ExtendedBooksModel
namnområdet. Observera att elementet Using
anger att ett namnområde har importerats. Observera också att egenskapens Address
typ definieras med dess fullständigt kvalificerade namn (ExtendedBooksModel.Address
), vilket anger att den här typen definieras i ExtendedBooksModel
namnområdet.
<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>