Entity Framework - Parte 1 - Mais por menos
Oi pessoal, estou devendo um post sobre o Entity Framework tem um tempo. Então vamos nessa!
Antes de mais nada um pouco de conceito. O Entity Framework (EF) é um mapeador objeto relacional (ORM - Object Relacional mapper, sigle em inglês), e o que significa isso? Significa que o papel do EF é mapear uma classe com uma ou mais tabelas no banco de dados, permitindo dessa forma que o desenvolvedor trabalhe com as classes e o EF reflita aquilo no banco de dados, sem a necessidade do programador escrever os SELECTs, UPDATEs, INSERTs e DELETEs.
Da forma tradicional como seria feito um método que retorna uma lista de uma dada classe preenchida? Vamos ao passos:
Se você ainda usa essa forma eu posso imaginar que você tem um motivo muito forte ou gosta de sofrer. Risos.
Vamos ao mesmo exemplo com Entity Framework:
Vamos agora fazer um minuto de silêncio para refletir sobre quanto tempo pode ser economizado e gastar tempo com o código de negócio e não de puro acesso a dados. Nessas duas únicas linhas o EF basicamente a mesma coisa do exemplo anterior exceto o try/catch que eu tirei para te deixar mais impressionado.
Além do Oracle e do SQL Server o EF suporta vários outros bancos que você pode ver nessa lista.
Na próxima parte vou apresentar a maneiras como Entity Framework consegue mapear as classes para as tabelas e depois fazer uma aplicação simples para consolidar o conhecimento. Fique ligado aqui!
Antes de mais nada um pouco de conceito. O Entity Framework (EF) é um mapeador objeto relacional (ORM - Object Relacional mapper, sigle em inglês), e o que significa isso? Significa que o papel do EF é mapear uma classe com uma ou mais tabelas no banco de dados, permitindo dessa forma que o desenvolvedor trabalhe com as classes e o EF reflita aquilo no banco de dados, sem a necessidade do programador escrever os SELECTs, UPDATEs, INSERTs e DELETEs.
Da forma tradicional como seria feito um método que retorna uma lista de uma dada classe preenchida? Vamos ao passos:
- Criar um objeto que representa uma conexão.
- Criar um objeto que representa o comando a ser executado no banco.
- Abrir a conexão
- Executar o comando
- Criar um objeto da lista que você pretende retornar
- Iterar o resultado
- Obter cada coluna do resultado
- Criar um objeto e preencher ele
- Colocar o objeto na lista
- Fechar conexão
- Retornar lista
1: public List<Category> ObterCategorias()
2: {
3: SqlConneciton conexao = new SqlConneciton(@"data source=(local); initial catalog=northwind; user id=teste; password=teste;");
4: SqlCommand comando = new SqlCommand("select * from categories", conexao);
5: List<Category> categorias = null;
6: Category categoria = null;
7: try
8: {
9: conexao.Open();
10: SqlDataReader reader = comando.ExecuteReader();
11: categorias = new List<Category>();
12: if (reader != null)
13: {
14: while (reader.Read())
15: {
16: categoria = new Category();
17: //fiz apenas uma propriedade
18: // mas essa linha seria repetida para
19: // cada coluna retornada pela query
20: categoria.Name = reader["Categoryname"].ToString();
21: categorias.Add(categoria);
22: }
23: reader.Close();
24: }
25: }
26: catch (Exception)
27: {
28: throw;
29: }
30: finally
31: {
32: conexao.Close();
33: }
34: return categorias;
35: }
Se você ainda usa essa forma eu posso imaginar que você tem um motivo muito forte ou gosta de sofrer. Risos.
Vamos ao mesmo exemplo com Entity Framework:
1: public List<Category> ObterCategorias()
2: {
3: NorthwindEntities northwindEntities = new NorthwindEntities();
4: return northwindEntities.Categories.ToList();
5: }
Vamos agora fazer um minuto de silêncio para refletir sobre quanto tempo pode ser economizado e gastar tempo com o código de negócio e não de puro acesso a dados. Nessas duas únicas linhas o EF basicamente a mesma coisa do exemplo anterior exceto o try/catch que eu tirei para te deixar mais impressionado.
Além do Oracle e do SQL Server o EF suporta vários outros bancos que você pode ver nessa lista.
Na próxima parte vou apresentar a maneiras como Entity Framework consegue mapear as classes para as tabelas e depois fazer uma aplicação simples para consolidar o conhecimento. Fique ligado aqui!
Comentários
Postar um comentário