Modelo de Dados de Entidade: Namespaces
Um namespace em Modelo de Dados de Entidade (EDM) é um contêiner abstrata para tipos de entidade, tipos complexos e associações. Namespaces em EDM são semelhantes aos espaços em uma linguagem de programação: fornecem o contexto para os objetos que contêm e fornecem uma maneira de torne os objetos que têm o mesmo nome (mas estão contidos em namespaces diferentes).
Exemplo
O Entity Framework do ADO.NET usa uma DSL (linguagem específica de domínio) chamada CSDL (linguagem de definição de esquema conceitual) para definir modelos conceituais. O seguinte código de CSDL usar um namespace para identificar um tipo que é definido em um modelo conceitual diferente. O exemplo define um tipo de entidade (Publisher
) que tenha uma propriedade do tipo complexo (Address
) que é importado do espaço de ExtendedBooksModel
. Observe que o elemento de Using
indica que um namespace foi importado. Observe também que o tipo da propriedade de Address
é definido usando seu nome totalmente qualificado (ExtendedBooksModel.Address
), indicando que esse tipo está definido no namespace de 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>