Download Entity Framework

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Clusterpoint wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Versant Object Database wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Transcript
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