DbEntityEntry – Capturando os dados originais de uma entidade

Olá,

Hoje vamos discutir sobre um recurso muito útil do Entity Framework 5, o DbEntityEntry. Instâncias desta classe fornecem acesso a informações das entidades controladas pelo DbContext.

Mas que tipo de informação é gerenciada pela DbEntityEntry?

Com uma instância ativa de DbEntityEntry podemos recuperar os dados originais de uma entidade (aqueles mesmos dados de quando recuperamos a instância do banco de dados), podemos atualizar a instância com os dados ativos na base de dados, podemos forçar a execução das rotinas de validação, alterar o status de uma entidade, além de outras ações.

Saiba mais

Sobre estes anúncios

Entity Framework – Como atualizar apenas um campo?

Olá,

O Entity Framework, como todos sabem, é uma ferramenta de mapeamento objeto-relacional. E realiza ações como seleção, inclusão, atualização e exclusão de dados. Dentre estas simples operações podemos ter controle de grande parte de seu funcionamento.

Assim como podemos, em uma query, selecionar apenas um conjunto de campos que queremos recuperar do banco de dados, podemos indicar que queremos apenas atualizar um conjunto de campos, não toda a estrutura da entidade sob edição.

Saiba mais

Mapeando heranças no Entity Framework Code First

O Entity Framework Code First provê suporte ao mapeamento de heranças. Podemos fazer este mapeamento de duas maneiras, via Table Per Hierarchy ou Table Per Type. Vamos ver seu funcionamento e suas diferenças neste post.

Para os exemplos desta publicação utilizaremos a mesma estrutura de classes para os dois modelos de mapeamento. A estrutura proposta engloba três classes: Veiculo, Carro e Aviao. Nessa estrutura as classes Carro e Aviao herdam de Veiculo. O diagrama deste modelo pode ser visto na figura abaixo:

diagramaClasses

Saiba mais

EntityTypeConfiguration

Quando utilizamos a Fluent API para configuração do mapeamento de nosso banco de dados, corremos o risco de tornar o método OnModelCreating muito extenso e complexo.

Para evitar este cenário podemos criar uma classe que herde de EntityTypeConfiguration e que descreva qual a configuração de nosso mapeamento.

A classe EntityTypeConfiguration permite o mapeamento indvidual de nossas entidades, tornamos o comportamento de nosso método OnModelCreating mais simples e encapsulando o mapeamento de nossas entidades em classes próprias para isso. Saiba mais

Introdução ao Entity Framework Code First CTP 5

O objetivo deste post é apresentar o funcionamento do Entity Framework Code-First CTP 5. Este conjunto de bibliotecas ainda não está disponível na instalação do Visual Studio 2010, nem na instalação do Microsoft .Net Framework 4, pois ainda está em fase de testes e melhorias, por isso que ainda é um CTP (Community Technology Previews). O EF Code-First, apesar de ser um CTP, já está na versão 5, e apresenta muitas facilidades que auxiliam os desenvolvedores de software.

Nas próximas linhas apresentarei um exemplo de como trabalhar com o EF Code-First. Neste exemplo utilizo o conceito POCO (Plain Old CLR Objects), já discutido em um post anterior. Faremos a persistência dos dados de algumas entidades no banco de dados, e o EF Code-First ficará encarregado de fazer o mapeamento objeto-relacional para nossa aplicação.

Para utilizar o Entity Framework Code-First CTP 5 faça o download do mesmo neste link e siga os seguintes passos:

1 – Crie as tabelas no banco de dados Microsoft SQL Server, conforme o script abaixo:

POCO_SQL

2 – No Visual Studio 2010, crie uma solution em branco. Para este exemplo criei uma solution com o nome “SolutionEF_CTP5”.

3 – Adicione um projeto Class Library a solution. Para este projeto utilizei o nome “EFCTP5.Data”.

4 – Crie as classes Cliente, Endereco, Solicitacao conforme o código abaixo:

POCO_CLIENTE

POCO_ENDERECO

POCO_SOLICITACAO

5 – Após a adição destas classes, faça referências as DLLs:

  • System.Data.Entity
  • EntityFramework
    (geralmente localizada em C:\Program Files (x86)\Microsoft ADO.NET Entity Framework Feature CTP5\Binaries\)
  • System.Configuration

6 – Criar a classe de contexto, que irá administrar as requisições com a base de dados. Faça esta classe herdar de DbContext (System.Data.Entity). Adicione propriedades para representação das tabelas utilizando o tipo de dados DbSet – este tipo de dados é próprio para representação de coleções e entidades que podem servir para construção de queries. Sobrescreva o método “OnModelCreating”, com o objetivo de evitar a convenção de que o nome das tabelas devem estar no plural (pluralizados). Adicione um bloco de código no construtor desta classe para que a string de conexão seja preenchida sempre que o contexto de banco de dados for instanciado.

POCO_CONTEXT

8 – Criei um projeto console para testar a aplicação e adicione referência ao projeto criado anteriormente e a DLL do Entity Framework  Code First CTP 5.

POCO_ESTRUTURA

9 – Adicione um arquivo “App.Config” ao projeto e insira o seguinte bloco de configuração atribuindo uma string de conexão para o seu banco de dados:

POCO_STRING DE CONEXAO

10 – Adicione o código abaixo, na aplicação console, para testar a inclusão de novos registros.

POCO_INSERT

11 – Adicione o código abaixo, na aplicação console, para a consulta de registros cadastrados na base de dados.

POCO_SELECT

[]s! e até o próximo…

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 69 outros seguidores