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