Entity Framework

Download Report

Transcript Entity Framework

Entity Framework
Object Relational Mapping – ORM
Entity Framework
C# kursus Rohde & Schwarz
1
ORM?
C# kursus Rohde & Schwarz
2
Objects vs. Relations
C# kursus Rohde & Schwarz
3
Object-Relational Impedance Mismatch
Object-Oriented
Based on proven software
engineering principles.
Entry point is behaviour
Object collections and
associations derived from
graph theory
C# kursus Rohde & Schwarz
Relational
Based on proven
mathematical principles.
Entry point is data
Data collections and
associations derived from
set theory
4
A Physical Data Model
C# kursus Rohde & Schwarz
5
A Class Model
C# kursus Rohde & Schwarz
6
Differences
Physical Data Model
C# kursus Rohde & Schwarz
Class Model
7
Benefits Of O/R Mapping
Clean OO design
Hiding the relational model specifics lets the object model be more
cleanly analyzed and applied.
Productivity
Simpler code as the object model is free from persistence
constraints. Developers can navigate object hierarchies, etc.
Separation of concerns and specialization
Let the DB people worry about DB structure and the Object people
worry about their OO models.
Time savings
The O/R mapping layer saves you from writing the code to persist
and retrieve objects. O/R mapping tool vendors claim 20-30%
reduction in the code that needs to be written. Writing less code
also means less testing.
C# kursus Rohde & Schwarz
8
Drawbacks Of O/R Mapping
Usually commit the "Needless Repetition" deadly sin (a.k.a. DRY
– "Don't Repeat Yourself“)
The table structure as well as their relations are stored both
in the DB and in the mapping files used by the O/R mapper
Writing mapping files is a huge task
Needs to be updated every time the database layout is
changed
Queries
Limited query capabilities…
… or performance problems on complicated queries
Some O/R mappers implement caches, lazy initialization,
batch modes etc. to help avoid the performance problems
C# kursus Rohde & Schwarz
9
ENTITY FRAMEWORK
C# kursus Rohde & Schwarz
10
Entity Framework
What is Entity Framework?
Entity Framework (EF) is an object-relational mapper that
enables .NET developers to work with relational data using
domain-specific objects. It eliminates the need for most of
the data-access code that developers usually need to
write.
http://msdn.microsoft.com/en-us/data/ef.aspx
C# kursus Rohde & Schwarz
11
Supported Databases
MS SQL Server
MySQL
SQLite
Oracle
Firebird
PostgreSQL
... and more
C# kursus Rohde & Schwarz
12
Getting Started
EF supports four development workflows:
http://msdn.microsoft.com/en-us/data/jj590134
Find out which fits your conditions:
http://msdn.microsoft.com/en-us/data/ee712907
C# kursus Rohde & Schwarz
13
Installation
Pre installed with Visual Studio 2012
Can be installed with NuGet in Visual Studio 2010
You might need to install NuGet first...
C# kursus Rohde & Schwarz
14
Using Entity Framework
Create a mapping of your database
Entity Data Model (Model First)
Database migrations not possible (yet)
Plain Old CLR Objects (POCO) (Code First)
Database migrations possible
C# kursus Rohde & Schwarz
15
Using Entity Framework
Connect through a sub class of DbContext
Make queries using LINQ
C# kursus Rohde & Schwarz
16
Demo
C# kursus Rohde & Schwarz
17