apresentação em projeto de sistemas – entity framework
TRANSCRIPT
![Page 1: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/1.jpg)
Entity FrameworkFilipe Baumeister
Matteus Barbosa
Nathália Toledo
Wallace Oliveira
Welisson Caetano
![Page 2: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/6.jpg)
Implementação
● Estratégia de criação de banco
![Page 7: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/8.jpg)
![Page 9: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/10.jpg)
Exemplo prático: Code First
![Page 11: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/11.jpg)
Exemplo prático: Code First
![Page 12: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/12.jpg)
Exemplo prático: Code First
![Page 13: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/14.jpg)
Exemplo prático:
Code First – Relacionamento 0 .. 1
![Page 15: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/15.jpg)
Exemplo prático:
Code First – Relacionamento 0 .. 1
![Page 16: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/16.jpg)
Exemplo prático:
Code First – Relacionamento 1 .. 1
![Page 17: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/17.jpg)
Exemplo prático:
Code First – Relacionamento 1 .. *
![Page 18: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/18.jpg)
Exemplo prático:
Code First – Relacionamento * .. *
![Page 19: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/19.jpg)
Exemplo prático:
Code First – Relacionamento * .. *
![Page 20: Apresentação em Projeto de Sistemas – Entity Framework](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a64c2997f8b9a2c5d8b48dd/html5/thumbnails/22.jpg)
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