Apresentação em Projeto de Sistemas – Entity Framework

22
Entity Framework Filipe Baumeister Matteus Barbosa Nathália Toledo Wallace Oliveira Welisson Caetano

Transcript of Apresentação em Projeto de Sistemas – Entity Framework

Page 1: Apresentação em Projeto de Sistemas – Entity Framework

Entity FrameworkFilipe Baumeister

Matteus Barbosa

Nathália Toledo

Wallace Oliveira

Welisson Caetano

Page 2: Apresentação em Projeto de Sistemas – Entity Framework

Entity - O que é?

Framework de mapeamento objeto relacional (ORM), que permite a relação das classes (entidades)

diretamente com tabelas do banco de dados evitando a necessidade de utilizar códigos de banco na

aplicação (INSERT, DELETE, ETC) e possibilitando que os desenvolvedores trabalhem em um nível

mais alto de abstração criando e mantendo aplicativos orientados a objetos com menos código de

maneira geral, do que em aplicativos tradicionais.

Page 3: Apresentação em Projeto de Sistemas – Entity Framework

Arquitetura

A comunicação do Entity Framework com o banco

de dados é feita através do ADO.Net Provider,

que funciona como um “driver” do banco de dados,

normalmente desenvolvido pelo próprio fabricante

do banco, ou em alguns casos por um terceiro.

Sendo assim, todos os comandos submetidos pelo

Entity Framework são “traduzidos” para a

linguagem do banco de dados através do

seu provider, gerando os comandos SQL mais

adequados a cada operação e principalmente,

comandos que tenham o máximo de desempenho.

Page 4: Apresentação em Projeto de Sistemas – Entity Framework

Arquitetura

EDM: Entity Data Model

Modelo conceitual

Mapeamento

Armazenamento

LINQ to Entities: fornece suporte às consultas LINQ

Entity SQL é uma variação da SQL

permite que você realize consultas, inclusões, atualizações e

exclusões de dados

EntityClient Data Provider gerencia conexões, traduz

consultas de entidades em consultas específicas da fonte

de dados

ADO.Net Data Provider é uma camada que se comunica

com o banco de dados usando a ADO .NET padrão.

Page 5: Apresentação em Projeto de Sistemas – Entity Framework

Funcionalidades

● Ferramenta de “ORM” (Object-relational Mapping)

● Permite executar açõe CRUD com tabelas, Stored, Procedures e Views

● Permite Transações e controle de Concorrência

● Desenvolvido para suportar diferentes base de dados num mesmo projeto

● Vários providers disponíveis(SQL Server, Oracle, Mysql, DB2 entre outros

Page 6: Apresentação em Projeto de Sistemas – Entity Framework

Implementação

● Estratégia de criação de banco

Page 7: Apresentação em Projeto de Sistemas – Entity Framework

Associações, navegação e herança

4.2. Associações

São relações definidas explicitamente entre entidades. Tais relações são definidas basicamente via FOREIGN KEYS. 1.. 1; 1..* ;

*..*. Atributos dos modelos refletem campos das tabelas. É necessário que existam propriedades nos modelos que sejam

“mapas” para chaves estrangeiras configuradas nas tabelas.

Polimorfismo

Recursão

4.2.1. Navegação

Propriedade de uma entidade que permite gerenciar relações entre as entidades.

4.2.2 Herança

Herança é utilizada basicamente para reutilizar código, onde propriedades comuns de algumas classes são unidas em uma só. O

esquema mais usado é TPH – Uma tabela por hierarquia – onde uma coluna “discriminadora” é referência à especialização.

@Entity

@Inheritance(strategy=InheritanceType.SINGLE_TABLE)

@DiscriminatorColumn(name="planetype", strategy = InheritanceType.TABLE_PER_CLASS

discriminatorType=DiscriminatorType.STRING )

Page 8: Apresentação em Projeto de Sistemas – Entity Framework
Page 9: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo práticos

• Code-First

– Mais utilizado

– Código escrito primeiro e tabelas geradas conforme as

classes

• Model-First

– Classes geradas conforme as tabelas

– Útil quando já se tem um banco de dados

Page 10: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático: Code First

Page 11: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático: Code First

Page 12: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático: Code First

Page 13: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático: Code First

• private WebApplication2Context db = new WebApplication2Context();

Ação Código

INSERT db.Students.Add(student);

db.SaveChanges();

GET (SELECT) db.Students.ToList()

GET (SELECT) (específico) db.Students.Find(id)

UPDATE db.Students.Find(id)

db.Entry(student).State = EntityState.Modified;

db.SaveChanges();

DELETE db.Students.Find(id);

db.Students.Remove(student);

db.SaveChanges();

Page 14: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático:

Code First – Relacionamento 0 .. 1

Page 15: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático:

Code First – Relacionamento 0 .. 1

Page 16: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático:

Code First – Relacionamento 1 .. 1

Page 17: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático:

Code First – Relacionamento 1 .. *

Page 18: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático:

Code First – Relacionamento * .. *

Page 19: Apresentação em Projeto de Sistemas – Entity Framework

Exemplo prático:

Code First – Relacionamento * .. *

Page 20: Apresentação em Projeto de Sistemas – Entity Framework

Configurações

• Configurações referentes ao aplicativo ficam no

arquivo “app.config”

• Configurações referentes à questões web ficam

no arquivo “web.config”

Page 21: Apresentação em Projeto de Sistemas – Entity Framework

Referencias

Marcoratti, J. C. (2015). “Entity Framework – apresentação e arquitetura”. Disponivel em: <https://imasters.com.br/framework/entity-

framework-apresentacao-e-arquitetura/?trace=1519021197&source=single>. Acesso: Maio.

Microsoft. (2012). “Visão geral do Entity Framework” Disponivel em: <https://msdn.microsoft.com/pt-

br/library/bb399567(v=vs.110).aspx>. Acesso: Maio

Fernando Henrique Inocêncio Borba Ferreira

Ferreira, H. C (2012). “Construindo sua camada de acesso a dados com o Entity Framework 4.1” Disponível em:

<https://ferhenriquef.com/page/3/?s=entity+framework> . Acesso em Maio

Entity FrameWork Tutorial. “Entity Relationships: Disponivel em: <http://www.entityframeworktutorial.net/entity-relationships.aspx>.

Acesso: Maio.

Microsoft. “Database Provides”. Disponível em <https://docs.microsoft.com/en-us/ef/core/providers/> . Acesso: Maio.

Page 22: Apresentação em Projeto de Sistemas – Entity Framework

Microsoft. “Implementing Inheritance with the Entity Framework 6 in an ASP.NET MVC 5 Application (11 of 12)” Disponivel em:

<https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/implementing-inheritance-with-

the-entity-framework-in-an-asp-net-mvc-application>. Acesso: Maio.

Entity FrameWork Tutorial. “Entity Relationships: Disponivel em: <http://www.entityframeworktutorial.net/code-first/entity-framework-

code-first.aspx>. Acesso: Maio.

Microsoft. “Entity Framework Connections and Models” Disponível em: <https://msdn.microsoft.com/en-

us/library/jj592674(v=vs.113).aspx>. Acesso: Maio.

GUERRA L. R, ZAINA M. A. L, (2014): “MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO“ Disponivel em:

http://fatecid.com.br/reverte/index.php/revista/article/viewFile/9/10 Acesso: Maio

MAYUMI, Priscila. (2016)“ Entity Framework - Conceitos e recursos básicos” Revista Esy Net Magazine. Disponivel em:

http://www.devmedia.com.br/entity-framework-conceitos-e-recursos-basicos-revista-easy-net-magazine-29/27764 Acesso: Maio

Microsoft (2016) “Visão Geral do Entity framework” Disponivel em:

https://msdn.microsoft.com/pt-br/library/bb399567(v=vs.110).aspx Acesso: Maio