.NET - Entity Framework 5 - Operações CRUD (revisitado) - 1


O Entity Framework 5 (EF5) é a ultima versão liberada do Microsoft ADO .NET Entity Framework. O principal propósito do EF é tornar o trabalho com banco de dados relacionais mais fácil e rápido.

As operações CRUD(Create, Retrieve, Update, Delete) são operações básicas feitas com banco de dados e envolvem a adição, a exclusão, a atualização e a recuperação ou extração dos dados.

Um framework ORM como o Entity Framework oferece total suporte a operações CRUD pois se assim não fosse ele seria inútil e dessa forma o Entity Framework permite desenvolver aplicações que utilizam um modelo projetado para ficar entre o esquema de armazenamento de dados e a interface do usuário.

Um Banco de dados geralmente armazena e acessa dados de uma forma relacional e não têm noção de um modelo de dados ou objetos. Assim forma o Entity Framework permite aos desenvolvedores programar de acordo com um modelo conceitual que reflete a lógica da aplicação, em vez de um modelo relacional que reflete a estrutura de banco de dados.

Portanto o Entity Framework permite consultar, inserir, atualizar e excluir dados usando a common language runtime (CLR) objects e também mapear as entidades e relacionamentos que estão definidas no seu modelo para um banco de dados oferecendo facilidades para materializar dados retornados do banco de dados como objetos de entidade, tratar as mudanças que foram feitas nos objetos, lidar com a concorrência, propagar as alterações dos objeto de volta para o banco de dados e vincular os objetos aos controles.

O Entity Framework 5.0 pode ser usado com o Visual Studio 2010 e Visual Studio 2012 bem como com as versões Express para criar aplicativos que se destinam à plataforma .NET 4.0 e/ou 4.5.

Neste artigo eu vou mostrar como realizar as operações CRUD usando o EF5 e o Visual Studio 2012 Express for desktop e o LINQ to Entities.

Pré-requisitos: Conhecimentos básicos sobre Framework 3.5 Net, C#, VB .NET, Visual Studio 2012, LINQ e MS SQL Server

A primeira coisa que você tem que fazer ao usar o EF é criar o seu modelo conceitual que representa o seu modelo de domínio ou entidades que são mapeadas para as tabelas do banco de dados permitindo assim o acesso e a persistência das informações no banco de dados físico.

O Entity Framework permite que você crie o seu modelo de 3 formas distintas:

Database First - Esse fluxo de trabalho é indicado se você já tem um banco de dados ou se preferir usar outra ferramenta para criar seu banco de dados. O DataBase First parte do seu banco de dados e utiliza a engenharia reversa para criar as classes (entidades) e os mapeamentos. Este modelo mapeia todas as tabelas do banco de dados, visões, procedimentos armazenados e colunas em classes, métodos e propriedades
 
Model First - Esse fluxo é indicado quando você não tem um banco de dados e prefere trabalhar em um ambiente visual ao projetar seu modelo e banco de dados. Uma vez feito isso, você pode gerar código para criar o banco de dados e todas as suas tabelas, bem como gerar a entidade ou classes a serem usados no código.
 
Code First - Este fluxo é indicado quando você quer ter o controle total de todos os aspectos do ciclo de desenvolvimento, incluindo o desenvolvimento do banco de dados. Nele você vai fazer tudo via código e vai definir manualmente as suas classes, relacionamentos e mapeamentos para posteriormente gerar um banco de dados.

Então você pode gerar o seu modelo usando uma ferramenta como o assistente de geração Entity Data Model ou fazer tudo via código.

Neste artigo eu vou criar o modelo de entidades usando a assistente visual ADO .NET Entity Data Model usando o fluxo Model First.

Criando o projeto no Visual Studio 2012 Express for Desktop

Abra o Visual Studio 2012 Express for desktop e clique em New Project;

Selecione o template Visual Basic -> Windows -> Windows Forms Application e informe o nome EF5_CRUD;

Vamos agora referenciar o Entity Framework 5 no nosso projeto.

No menu TOOLS clique em Library Package Manager e a seguir em Package Manager Console;

No Package Manager Console digite : Install-Package entityframework para instalar a versão 5.0.

Criando o modelo de entidades

No menu PROJECT clique em Add New Item;

Selecione o item Data e clique em ADO .NET Entity Data Model informando o nome ProdutoModel;

Como estamos usando o fluxo Model First vamos partir de um modelo vazio e criar as nossas entidades, definir a associação e depois gerar o banco de dados a partir do modelo;

Clique na opção Empty Model e a seguir em Finish;

Clique com o botão direito do mouse na janela do descritor e a seguir clique em Properties;

Na janela Properties altere o nome do Entity Container Name para ProdutoContext;

Vamos agora criar a entidade Produto;

Clique com o botão direito do mouse sobre o descritor e selecione Add New -> Entity;

Informe o Entity Name Produto o Entity Set Produtos e defina a nome da Key Property como ProdutoId do tipo Int32 e clique em OK;

Vamos definir a propriedade Nome. Clique com o botão direito sobre Properties na entidade Produto e selecione Add New -> Scalar Property;

Informe o nome da propriedade como Nome;

Repita o procedimento e defina a propriedade escalar Valor;

Por padrão todas as propriedades criadas são definidas como sendo do tipo String; para alterar o tipo selecione a propriedade e na janela de propriedades em Type selecione o tipo desejado, para a propriedade Valor vamos definir como Decimal;

Vamos criar agora a entidade Categoria com as definições mostradas abaixo:

Vamos definir a propriedade escalar Nome na entidade Categoria:

Agora que já temos as duas entidades criadas vamos criar uma associação entre as entidades que permitirá realizar a navegação com base

Clique com o botão direito do mouse sobre o descritor e selecione Add New -> Association;

Na janela Add Association vamos definir uma associação do teremos uma categoria para muitos produtos conforme as opções abaixo:

Será criada a associação conforme mostra a figura a seguir:

Obs: Se você receber um warning sobre o mapeamento das tabelas não se preocupe que depois de gerar o modelo a validação será feita e o aviso irá desaparecer.

Agora estamos pronto para criar o banco de dados a partir do modelo que esta pronto e definido com duas entidades: Categoria e Produto.

Clique com o botão direito sobre o descrito e a seguir clique em Generate Database from Model;

Será aberta a janela do assistente, selecione New Connection e escolha a conexão existente ou cria uma nova conexão;

Informe o nome do servidor, nosso caso estamos usando o LocalDB e o nome do banco de dados que no exemplo será Macoratti.Estoque e clique em OK;

Se o banco de dados não existir será apresentada o aviso para confirmar a criação do banco de dados. Clique em Sim.

A seguir clique em Next>;

Será gerado o script para criação do banco de dados e das tabelas.

Clique em Finish;

Será apresentado o script pronto. Clique com o botão direito do mouse sobre a janela do script e selecione Execute;

A janela de conexão com o servidor será aberta. Selecione o servidor localdb e clique em Connect;

Ao final do processo você deverá ver na janela do DataBase Explorer as tabelas Categorias e Produtos criadas no banco de dados Macoratti.Estoque;

Já temos tudo pronto para mostrar como acessar e realizar as operações CRUD com as entidades que criamos persistindo as informações no banco de dados.

Na segunda parte do artigo iremos criar a aplicação Windows Forms para realizar as operações CRUD em nosso modelo de entidades.

Aguarde:.NET - Entity Framework 5 - Operações CRUD (revisitado) - 2

João 6:36 Mas como já vos disse, vós me tendes visto, e contudo não credes.

João 6:37 Todo o que o Pai me dá virá a mim; e o que vem a mim de maneira nenhuma o lançarei fora.

Referências:


José Carlos Macoratti