vad är entity framework? -...

23
1 Introduktion till Entity Framework och LINQ © Copyright Mahmud Al Hakim [email protected] www.webacademy.se Vad är Entity Framework ? ” The Microsoft ADO.NET Entity Framework is an Object/Relational Mapping (ORM) framework that enables developers to work with relational data as domain-specific objects, eliminating the need for most of the data access plumbing code that developers usually need to write. Using the Entity Framework, developers issue queries using LINQ, then retrieve and manipulate data as strongly typed objects...” Källa och läs mer https://msdn.microsoft.com/en-us/data/aa937709.aspx Copyright 2015 - Mahmud Al Hakim www.webacademy.se 2

Upload: others

Post on 06-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

1

Introduktion till Entity Framework

och LINQ

© Copyright

Mahmud Al Hakim

[email protected]

www.webacademy.se

Vad är Entity Framework?

” The Microsoft ADO.NET Entity Framework is

an Object/Relational Mapping (ORM) framework

that enables developers to work with relational

data as domain-specific objects, eliminating the

need for most of the data access plumbing code

that developers usually need to write. Using the

Entity Framework, developers issue queries using

LINQ, then retrieve and manipulate data as

strongly typed objects...”

Källa och läs mer

https://msdn.microsoft.com/en-us/data/aa937709.aspx

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 2

Page 2: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

2

Vad är ADO.NET?

ADO.NET har sina rötter i ADO ”ActiveX

Data Objects”

ADO är ett API för dataåtkomst till olika

datakällor.

ADO lanserades 1996 och skulle ersätta

Microsofts tidigare mekanismer för

dataåtkomst.

ADO.NET lanserades i .NET 1.0 och har många

förbättringar och därför anses som en helt egen

produkt.

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 3

Vad är ORM?

ORM står för Object/Relational Mapping.

ORM är ett samlingsnamn för tekniker att gå mellan

relationsdatabaser och objektorienterade applikationer.

ORM är ett objektorienterad-system som konverterar

databastabeller till klasser, tabellrader till objekt,

och celler till egenskaper.

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 4

Page 3: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

3

ORM – Några exempel

Entity Framework

https://msdn.microsoft.com/data

LINQ to SQL

https://msdn.microsoft.com/en-

us/library/vstudio/bb397926.aspx

Nhibernate

http://nhibernate.info/

DatabaseObjects

http://www.hisystems.com.au/databaseobjects/

Dapper ORM

https://en.wikipedia.org/wiki/Dapper_ORM

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 5

6Bildkälla: https://msdn.microsoft.com/en-us/data/aa937709.aspx

Exempel på providers• Microsoft SQL Server

• MySQL

Connector/NET

• Oracle Data Provider

for .NET

• IBM DB2

Page 4: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

4

Vad är LINQ?

LINQ står för Language INtegrated Query.

LINQ är en komponent som finns i Microsoft .NET

LINQ to Entities används i Entity Framework.

LINQ to Objects används för att komma åt objekt i minnet.

LINQ to SQL används för att ställa frågor mot MS SQL

(kallas även XLINQ).

LINQ to XML används för att hantera XML-filer

(kallas även XLINQ).

LINQ består till grunden av ett API bestående av tilläggsmetoder

(extension methods) som tillhandahåller de funktioner som

behövs för att skicka förfrågningar till olika objekt.

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 7

Bildkälla: http://codesamplez.com/linq-tutorials 8

Page 5: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

5

Entity Framework Datamodeller

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 9

Bildkällahttp://www.webtech360.com/detail/design-entity-data-model-part-1-database-first-3515.html

EF Database First – Övningar mot Norhwind

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 10

Page 6: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

6

Add New Item…

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 11

ADO.NET Entity Data Model

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 12

Page 7: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

7

EF Designer from database

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 13

Skapa en ”Connection”

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 14

Välj ”SQL Server

Database File”

Och välj sedan

databasen

”NORTHWND.MDF”

Page 8: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

8

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 15

Välj EF version…

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 16

Page 9: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

9

Välj tabeller…

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 17

Säkerhetsvarnigen är inte så farlig!

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 18

Page 10: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

10

Undersök ”References”

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 19

Filen App.config

En XML-fil som innehåller ett antal viktiga inställningar bl. a. connectionStrings

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 20

Page 11: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

11

Filen NorthwindModel.edmxEn XML-fil som innehåller ”ConceptualModels”, ” StorageModels”

och mapping mellan dessa! Öppna filen i en XML-editor

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 21

NorthwindModel.edmx forts…

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 22

Page 12: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

12

Mapping…

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 23

Mapping Details

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 24

Page 13: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

13

Klassen NORTHWNDEntitiesÄrver från DbContext

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 25

connectionStringHämtas från filen App.config

Vad är DbContext?

“A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that it can be used to query from a database and group together changes that will then be written back to the store as a unit.”

Källa: MSDN* Copyright 2015 - Mahmud Al Hakim www.webacademy.se 26

Ett databascontext

är en klass som

sköter läsning och

skrivning till en

databas.

”Ett kontext är en spork” *

Page 14: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

14

Vad är DbSet?

“A DbSet represents the collection of all entities in the context, or that can be queried from the database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method.”

Källa: MSDN

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 27

Klassen Order_Details

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 28

Page 15: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

15

Undersök övriga filer…

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 29

Skapa en instans av NORTHWNDEntities

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 30

Page 16: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

16

En första LINQ-fråga

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 31

Skriv ut din LINQ-fråga

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 32

Page 17: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

17

Visa antal produkter

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 33

En tilläggsmetod

(Extension Method)

Skriv ut en lista på alla produkter

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 34

Page 18: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

18

Visa en sorterad lista

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 35

Fallande

Z-A

Visa de 10 första produkter

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 36

En tilläggsmetod

(Extension Method)

Page 19: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

19

Visa produkter från 11-20

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 37

Koppla tilläggsmetoder

(Chaining)

Visa en lista på alla produkter som kostar mer än 50

Ett första försök med C#

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 38

Page 20: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

20

Visa en lista på alla produkter som kostar mer än 50

En bättre lösning med LINQ

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 39

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 40Källa: MSDN

Page 21: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

21

Visa alla produkter som börjar på A

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 41

Visa alla produkter som innehåller ”Anton”

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 42

Page 22: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

22

Gruppering

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 43

EF Database First

Övningar mot databasen Videobutik

1. Skapa ett nytt projekt i Visual Studio (Console Application).

2. Lägg till en ”ADO.NET Entity Data Model”.

3. Välj ”EF Designer from database”.

4. Skapa en Connection mot MS SQL Server.

5. Connect till databasen Videobutik.

6. Undersök edmx-filen.

7. Skapa en instans av VideobutikEntities.

8. Skapa en LINQ-fråga som hämtar en sorterad lista på alla

kunder.

9. Skapa egna LINQ-frågor mot databasen.

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 44

Page 23: Vad är Entity Framework? - DynamicOSdynamicos.se/databas/databas-newton-8-entityframework-linq.pdf · Övningar mot databasen Videobutik 1. Skapa ett nytt projekt i Visual Studio

23

Överkurs

Vilka kunder har ”Matrix” hemma?

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 45

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 46

Överkurs

Lägg till en ny

kund