View
2
Download
0
Category
Preview:
Citation preview
1
Introduktion till Entity Framework
och LINQ
© Copyright
Mahmud Al Hakim
mahmud@webacademy.se
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
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
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
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
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
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
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”
8
Copyright 2015 - Mahmud Al Hakim www.webacademy.se 15
Välj EF version…
Copyright 2015 - Mahmud Al Hakim www.webacademy.se 16
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
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
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
12
Mapping…
Copyright 2015 - Mahmud Al Hakim www.webacademy.se 23
Mapping Details
Copyright 2015 - Mahmud Al Hakim www.webacademy.se 24
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” *
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
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
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
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
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)
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
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
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
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
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
Recommended