Entity Framework - Conceitos Básicos - Terminologia
Este série de artigos é dedicada ao Entity Framework e tem o objetivo de dar uma introdução básica e uma visão geral de como usar este importante recurso da plataforma .NET. Os artigos são parcialmente baseados na documentação da MSDN de onde são citadas as respectivas referências.
Iniciando com o Entity Framework
Conceito
A ADO .NET Entity Framework foi projetado para permitir que a criação de aplicações com acesso a dados use o modelo de programação feito contra um modelo conceitual ao invés do antigo modelo de programação feito diretamente contra um banco de dados relacional. O objetivo é diminuir a quantidade de código e o tempo de manutenção necessária exigida nestas aplicações orientada a dados.
A ADO .NET Entity Framework é uma framework que abstrai o esquema de um banco de dados relacional e o apresenta como um modelo conceitual. Abaixo a figura que representa a arquitetura em camadas do Entity Framework: (Até o lançamento do VS 2010)
Data Source
: Representa a base da arquitetura onde estão armazenados os dados;
Data Providers : Os dados são acessados por um ADO.NET data provider. Até o momento tanto o SQL Server como o MySQL são suportados e provavelmente em breve os principais RDBMS do mercado (Oracle, MySQL, DB2, Firebird, Sybase, VistaDB, SQLite, ...) terão um provider. Entity Data Model (EDM) : O Entity Data Model é constituído de 3 partes:
Entity Client : O EntityClient é um provedor gerenciado ADO.NET que suporta o acesso a dados descritos no EDM. Ele é similar ao SQLClient, e fornece diversos componentes como EntityCommand, EntityConnection e EntityTransaction; Object Services : Este componente permite realizar consultas, atualizações, inclusões e exclusões nos dados, expressados como objetos CLR fortemente tipados que são instâncias de entity types. Ele da suporte tanto a consultas Entity SQL como LINQ to Entities; Entity SQL (ESQL) : É uma derivação da Transact-SQL, projetada para consultar e manipular entidades definidas no EDM. Ele dá suporte herança e associação sendo que tanto os componentes Object Services como os componentes Entity Client podem executar instruções Entity SQL; LINQ to Entities : É uma linguagem de consulta fortemente tipada para consultar entidades definidas no EDM; |
É uma boa idéia você se habituar com a terminologia usada pelo Entity Framework, vamos aos principais termos usados:
Termo | Definição do termo |
---|---|
association | A definição de um relacionamento entre entidades. |
association set | Um container lógico para as instâncias de associações do mesmo tipo; |
base type | Um tipo no EDM a partir do qual um ou mais tipos derivados herdam algumas das suas propriedades; |
constraint | Restringe valores possíveis de uma propriedade e verifica se um valor é válido; |
container | Um agrupamento lógico de entidades (entity) e conjunto de associações (association sets). |
concurrency | Um processo que permite que múltiplos usuários acessem e alterem dados compartilhados ao mesmo tempo. O Entity Framework implementa o modelo de concorrência otimista (optimistic concurrency model) |
deferred loading(Lazy load) | Quando objetos são retornados por uma consulta, os objetos relacionados não são carregados ao mesmo tempo, ao invés, eles são carregados automaticamente quando a propriedade de navegação for acessada. É também conhecido como "lazy loading". |
eager loading | É o processo de carregar um conjunto específico de objetos relacionados com os objetos que forem explicitamente requisitados por uma consulta. |
entity | Um conceito em um domínio de uma aplicação a partir da qual um tipo de dados é definido. |
EntityClient | È um provedor de armazenamento independente ADO.NET que contém classes tais como EntityConnection, EntityCommand, e EntityDataReader. Trabalha com Entity SQL. |
entity container | Especifica um conjunto de entidades e associações que serão implementadas em um namespace específico. |
Entity Data Model (EDM) | Um modelo que permite a representação dos dados como um conjunto de entidades e relacionamentos. |
entity set | O container lógico para entidades de um dado tipo e seu subtipo. As entity sets são mapeados para tabelas no banco de dados. |
entity type | Uma classe que representa um entidade como definida no modelo conceitual. Objetos são instâncias das entity types. |
EntityType | Uma especificação para um tipo de dados que inclui uma chave e um conjunto de propriedades e representa o item no modelo conceitual. |
explicit loading | Quando objetos são retornados pela consulta os objetos relacionados não são carregados ao mesmo tempo. Eles não são carregados até que sejam explicitamente requisitados usando o método Load. |
key | O atributo de um entity type que especifica qual propriedade ou conjunto de propriedades é usado para identificar instâncias únicas de um entity type |
mapping | Uma especificação de correspondência entre itens em um modelo conceitual e o modelo de armazenamento. |
mapping file | Um arquivo XML que é a representação de um mapeamento entre o modelo conceitual e o modelo de banco de dados. |
multiplicity | O número de entidades que pode existir em cada lado de um relacionamento. |
multiple entity sets per type | A habilidade de uma entidade de ser definida em um ou mais de um entity set. |
navigation property | Uma propriedade de uma entidade que representa o relacionamento para outra entidade, como definido por uma associação. Ela é usada para retornar objetos relacionados como uma EntityCollection ou uma EntityReference, dependendo da multiplicidade do outro lado da associação. |
object context | Representa o entity container definido em um modelo conceitual e contém a conexão correspondente à fonte de dados e fornece serviços como o gerenciamento de estado e resolução de identidade. Um object context é representado por uma instância da classe ObjectContext. |
object query | Uma consulta executada contra um modelo de dados em um object context que retorna dados como objetos. |
relationship | A conexão lógica entre entidades. |
role | O nome dado para cada final de uma associação. |
scalar property | Uma propriedade de uma entidade que mapeia para um campo único no modelo de armazenamento. |
simple type | Um tipo primitivo que é usado para definir propriedades em um modelo conceitual. |
No início pode parecer confuso mas com o tempo você acabará dominando a terminologia usada no Entity Framework.
Eu sei é apenas Entity Framework, mas eu gosto...
Referências:
José Carlos Macoratti