Introduction To Entity Framework
Introduction To Entity Framework
framework
2
Questions
#Entity
3
ORM Technologies
• Object-Relational Mapping (ORM) is a programming technique for
automatic mapping data and schema
• Between relational database tables and object-oriented classes and objects
• ORM creates a "virtual object database"
• Can be used from within the programming language (C# or Java…)
• ORM frameworks automate the ORM process
• A.k.a. Object-Relational Persistence Frameworks
5
ORM Frameworks
• ORM frameworks typically provide the following functionality:
• Creating object model by database schema (DB first model)
• Creating database schema by object model (code first model)
• Querying data by object-oriented API (e.g. LINQ queries)
• Data manipulation operations
• CRUD – create, retrieve, update, delete
• ORM frameworks automatically generate SQL to perform the
requested data operations
6
ORM Advantages and Disadvantages
• Object-relational mapping (ORM) advantages
• Developer productivity: writing less code
• Abstract from differences between object and relational world
• Complexity hidden within the ORM
• Manageability of the CRUD operations for complex relationships
• Easier maintainability
• Disadvantages:
• Reduced performance (due to overhead or incorrect ORM use)
• Reduces flexibility (some operations are hard for implementing)
7
ORM Frameworks in .NET
• Built-in ORM tools in .NET Framework and VS
• Entity Framework (LINQ-to-Entities)
• LINQ-to-SQL (Not used)
• Both combine entity class mappings and code generation, SQL is generated at
runtime
• Third party ORM tools
• Nhibernate
• Telerik OpenAccess ORM
8
Overview of EF
• Entity Framework (EF) is the standard ORM framework for .NET
• Provides a run-time infrastructure for managing SQL-based database data
as .NET objects
• The relational database schema is mapped to an object model
• Visual Studio provides built-in tools for generating Entity Framework data
models
• Data mappings consist of C# classes, XML and attributes
• EF provides a powerful data manipulation API
• CRUD operations and complex querying with LINQ
10
Entity Framework Features
• Maps tables, views, stored procedures and functions as .NET objects
• Provides LINQ-based data queries
• Executed as SQL SELECTs on the database server
• Parameterized queries
11
Entity Framework Features (2)
• Works with any relational database
• You need an Entity Framework data provider
• Work with a visual model, database or with your own classes
• Has very good default behavior
• Very flexible for more granular control
• Open source – independent release cycle
github.com/aspnet/EntityFramework
12
EF: Basic Workflow
1. Define the data 2. Write & execute 3. EF generates &
model (use a DB query over executes an SQL
Visual designer IQueryable query in the DB
or code first)
13
EF: Basic Workflow (2)
4. EF transforms 5. Modify data 6. Entity Framework
the query with C# code generates &
results into and call "Save executes SQL
.NET objects Changes" command to
modify the DB
14
EF Components
• The DbContext class
• DbContext holds the database connection and the entity classes
• Provides LINQ-based data access
• Implements identity tracking, change tracking, and API for CRUD operations
• Entity classes
• Hold entities (objects with their attributes and relations)
• Each database table is typically mapped to a single C# entity class
15
EF Components (2)
• Associations (relationship mappings)
• An association is a primary key / foreign key-based relationship between two
entity classes
• Allows navigation from one entity to another
var courses = student.Courses.Where(…);
• Concurrency control
• Entity Framework uses optimistic concurrency control
• No locking by default
• Automatic concurrency conflict detection
16
Reading Data with
Entity Framework
The DbContext Class
• The DbContext class is generated by the Visual Studio designer
• DbContext provides:
• Methods for accessing entities (object sets)
• Methods for creating new entities (Add() methods)
• Ability to manipulate database data though entity classes
• Read, modify, delete, insert
• Easily navigate through the table relationships
• Executing LINQ queries as native SQL queries
• Create the DB schema in the database server
18
Using DbContext Class
• var
FirstsoftUniEntities = new SoftUniEntities();
create instance of the DbContext:
19
Reading Data with LINQ Query
• Executing LINQ-to-Entities query over EF entity:
•var
Printing
querythe=native database SQL command behind a query:
context.Employees;
Console.WriteLine(query.ToString());
• This will print the SQL native query executed at the database server to
select all Employees
• Can be printed to file using StreamWriter class instead of Console class
22
with EF
Creating New Data
• To create a new database row use the method Add(…) of the
corresponding
var project = collection:
new Project()
Create a new
{ project object
Name = "Judge System",
StartDate = new DateTime(2015, 4, 15),
};
context.Projects.Add(project);
context.SaveChanges(); Mark the object for inserting
25
Updating Existing Data
• DbContext allows modifying entity properties and persisting them in
the database
• Just load an entity, modify it and call SaveChanges()
softUniEntities.Employees.Remove(employee);
softUniEntities.SaveChanges(); This will execute the
SQL DELETE command
27
Extending Entity Classes
29
Summary
• ORM frameworks maps database schema to
objects in a programming language
• Facilitates development process
• Entity Framework is the standard ORM for C#
• Can work with any database if there is provider
• Supports CRUD operations with DbContext
• Provides LINQ-based data queries
• Translated to SQL at runtime
• Automatically tracks changes to in-memory objects
30
Introduction to Entity Framework
? ?
?
stio ns ? ?
Qu e ?
?
?
https://softuni.bg/courses/
License
• This course (slides, examples, demos, videos, homework, etc.)
is licensed under the "Creative Commons
Attribution-NonCommercial-ShareAlike 4.0 International" license
32
Free Trainings @ Software University
• Software University Foundation – softuni.org
• Software University – High-Quality Education,
Profession and Job for Software Developers
• softuni.bg
• Software University @ Facebook
• facebook.com/SoftwareUniversity
• Software University @ YouTube
• youtube.com/SoftwareUniversity
• Software University Forums – forum.softuni.bg