Entity Framework - Arquitetura
A arquitetura do Entity Framework, de baixo para cima, consiste no seguinte -
Provedores de dados
Esses são provedores específicos de origem, que abstraem as interfaces ADO.NET para se conectar ao banco de dados ao programar no esquema conceitual.
Ele traduz as linguagens SQL comuns, como LINQ, por meio da árvore de comando, para uma expressão SQL nativa e a executa no sistema DBMS específico.
Cliente da Entidade
Esta camada expõe a camada de entidade à camada superior. O cliente de entidade fornece aos desenvolvedores a capacidade de trabalhar em entidades na forma de linhas e colunas usando consultas SQL de entidades sem a necessidade de gerar classes para representar o esquema conceitual. Entity Client mostra as camadas da estrutura da entidade, que são a funcionalidade principal. Essas camadas são chamadas de Modelo de Dados de Entidade.
o Storage Layer contém todo o esquema do banco de dados em formato XML.
o Entity Layer que também é um arquivo XML define as entidades e relacionamentos.
o Mapping layer é um arquivo XML que mapeia as entidades e relacionamentos definidos na camada conceitual com relacionamentos e tabelas reais definidos na camada lógica.
o Metadata services que também é representado no Entity Client fornece API centralizada para acessar metadados armazenados em camadas de Entidade, Mapeamento e Armazenamento.
Serviço de Objeto
A camada Object Services é o Object Context, que representa a sessão de interação entre os aplicativos e a fonte de dados.
O principal uso do Contexto do Objeto é realizar diferentes operações como adicionar, excluir instâncias de entidades e salvar o estado alterado de volta no banco de dados com a ajuda de consultas.
É a camada ORM do Entity Framework, que representa o resultado dos dados para as instâncias do objeto das entidades.
Esses serviços permitem que o desenvolvedor use alguns dos recursos avançados do ORM, como mapeamento de chave primária, controle de alterações, etc., escrevendo consultas usando LINQ e Entity SQL.