Learn Entity Framework in a day with Code First, Model First and Database First
•Introduction to Entity Framework (EF)
•Architecture
•What’s new!
•Different approaches to work with (Code first, Database first and model first)
•Choosing right work model
•Pictorial Tour to each model
•Features & Advantages
•Question & Answer
for any help and understanding feel free to contact
thank you
2. OUTLINE
• Introduction to Entity Framework (EF)
• Architecture
• What’s new!
• Different approaches to work with
• Choosing right work model
• Pictorial Tour to each model
• Features & Advantages
• Question & Answer
3. WHAT IS ENTITY FRAMEWORK???
• EF is a data access framework from Microsoft that helps to bridge the
gap between data structures and objects in your applications.
• It is an ORM framework.
• Enhancement to ADO.NET that gives automated mechanism for accessing
& storing in the database.
• Microsoft’s latest and recommended way for data access for .NET
applications.
4. ENTITY FRAMEWORK ARCHITECTURE
• EDM, Consists of Conceptual model, Mapping and Storage model.
• LINQ to Entities, Used to write queries against the object
model.
• Entity SQL, like L2E, but little more difficult.
• Object Service, Responsible for materialization.
• ECDP, Responsible to convert L2E or Entity SQL queries into a SQL
query.
• ADO.net, Communicates with the database using standard ADO
5. What’s new in EF 5
• Become Open Source
• Enum Support
• Spatial Data Types using DbGeography and DbGeometry classes.
• Table-Valued functions support
• Performance Enhancements
• Designer Improvement
• Better Query Performance
• Code First to add new tables to existing Db
6. ENTITY FRAMEWORK APPROACHES
DATABASE FIRST
Model the database artifacts
(tables, views, primary keys,
foreign keys, etc.)
Allows you to use legacy database
in your ORM application
Low level control over the
database
Entity Data Model can be updated
whenever database schema
changes.
Database-first approach supports
stored procedure, view, etc.
MODEL FIRST
Creating a model using the Entity
Framework designer tools
Designer can generate DDL
statements to create the database
An easy-to-use UI allows quickly
create new entities
Separation of code and database in
a declarative format
Dropping and re-creating the
database is not a choice
This uses an .EDMX file to store
model and mapping information.
CODE FIRST
The primary focus is getting the
code and logic
Define entity model with classes
and mappings in code..
Entity Framework create (and
recreate) the database for you.
Does not use Entity Framework
visual design tool, neither to design
entities
There is no XML file – no EDMX file –
to represent model and storage
schemas
9. HOW TOs
The steps involved in this example are as follows:
Create the new SQL Server database
Create the database objects
Create a new C# Class Library Project in Visual Studio 2012 Solution
Add a new ADO.NET Entity Data Model to project
Create a new Database Connection
Import the database objects into the EDM
Modify the EDM to accommodate the scalar-valued functions
15. HOW TOs
The steps involved in this example are as follows:
Creating the model
Creating entities in the .edmx
Editing entity properties
Applying relationships to the entities
Name DatabaseSchema
Generating the database from the model
23. HOW TOs
The steps involved in this example are as follows:
Create a new Class Library
Create POCO (Plain Old CLR Object) classes
Add data annotations to the POCO classes.
Create enum classes (if required)
Add Entity Framework to the Solution
Add a DbContext class
Add ‘Code First Migrations’
Updates the database (if needed/made changes)
27. FEATURES
• Works with a variety of database servers (including Microsoft SQL server, oracle,
and DB2)
• Rich mapping engine handle real-world database and work with stored procedure
• Generates strongly-typed entity objects that can be customized beyond 1-1
mapping
• Generates mapping/plumbing code
• Translates LINQ queries to database queries
• Materializes objects from data store calls
• Tracks changes, generating updates/inserts
28. Advantages
• Reduced development time
• Developers can work more application-centric
• Free from hard-coded dependencies on a particular data engine
• Mappings can be change without changing the application code
• L2Eprovides validation for writing queries against a conceptual model
• Integrates with all the .NET application programming models
• Worked well with ASP.NET, WPF, WCF, and WCF Data Services
29. Question & Answer
“A wise man can learn more from a foolish question than a fool can
learn from a wise answer.”
Bruce Lee