Download - ADO.NET Entity Framework
MD. SAIFULLAH AL AZAD, Software Architect LEADS Corporation Limited
April 22, 2023
ADO.NET ENTITY FRAMEWORK
You found me in internet:Blog: www.dotnetbd.wordpress.com LinkedIn: http://bd.linkedin.com/pub/saifullah-azad/69/604/7a8 Facebook: https://www.facebook.com/saifullah.azad
What Is It?
Visual Studio 2010.NET 4.0LINQEntity Framework 4.2
The ADO.NET Entity Framework is part of Microsoft’s next generation of .NET technologies.
It is intended to make it easier and more effective for object-oriented applications to work with data.
SQLServer
SQLAzure
Visual Studio “Quadrant”
SQL Server Modeling Services
Entity Framework
ADO.NET “M”/EDM
Data Services
…
Architecture
The Logical Data Model• Almost any business
application today has to speak to a relational database.
• This involves the usual suspects of tables with foreign keys, a smattering of views, and generally a gob of stored procedures.
Tables
Views
Stored Procedures
Foreign Key Relationships
The Object-Oriented Domain Model
Objects
Behavior
Properties
Inheritance
Complex Types
Applications themselves are written in a completely different world.
The same data that lives in the relational database is represented entirely differently in the application.
The ResultLogical Data Model
Lots of Custom Code
Application Domain
The result of this “impedance mismatch” is that developers devote a lot of time and energy writing code to translate between how the database likes to see data and how the application likes to see data.
Other Ways to Address The Same Problem Hibernate (Java) Enterprise Objects Framework
(Mac OS) NHibernate (.NET) LINQ to SQL (Visual Studio 2008) And many, many, more …
The ADO.NET Entity FrameworkLogical Data Model
Entity Data Model
Less Custom Code
Application Domain
The ADO.NET Entity Framework seeks to remedy the problem by providing a layer of abstraction between the logical data model and the application domain.
Why the Entity Model?Logical Data Model• Tables• Rows• Foreign Keys
Entity Data Model• Entity Sets• Entities• Relationships
Closer to the application problem space
Better suited for object oriented programming
Supports Inheritance Supports complex types Relationships are more
meaningful to the application
The “Stuff” in ADO.NET Entity FrameworkThe tools and technology that developers will interact with
when using the ADO.NET Entity Framework
Entity Data Model A gob of XML that
defines Logical Data Tables,
Views, Foreign Keys Entity Objects that
Map to the Logical Data
The Mapping Between the Two
Entity Data Model Designer A Visual Studio
Designer that protects developers from the XML that is the EDM
ObjectContext A code-generated
data context created from the Entity Data Model
Responsible for managing communication between the conceptual data model and the logical data model
Entities Code-generated
class definitions for objects defined in the EDM.
Getting the Data OutHow do we get data out of the fancy Entity Data Model?
eSQL (Entity SQL) A brand new SQL
language to learn Leverages the rich,
object-oriented Entity Data Model Inheritance Collections Complex Types
Literal Strings – No Compiler Checking
Questionable value in embedded SQL in code
Extensions Methods and String Predicates Queries the object
model created against the EDM
Still string-based. No compiler checking
An ugly mix of code and eSQL statements
LINQ to Entities Full compiler
checking. No wondering if the query is valid.
A fun new SQL-Like syntax
More OO-ish
What Can You Do?The power of the Entity Data Model contrasted to a logical
data model of tables and stored procedures.
Combine Multiple Logical Tables into One EntityDatabase Tables Entity Data Model
Implement InheritanceDatabase Tables Entity Data Model
Other Fun Stuff Implement Complex Types (e.g.
Address) Consume Conceptual Model with
Reporting Services and other BI Tools Create an EDM that talks to stored
procedures Use transactions, manage concurrency,
cache execution plans
Manipulate Data By Manipulating ObjectsDatabase Result Desired EDM Object ManipulationINSERT ROW Create new object
Add object to EDM ContextUpdate Context
DELETE ROW Get instance of object from EDM ContextAsk Context to remove the objectUpdate Context
UPDATE ROW Get instance of object from EDM ContextUpdate objectUpdate Context
New in ADO.NET Entity Framework 4.0 Model-first development Automatic pluralization Foreign keys in models POCO class support Lazy loading T4 Code Generation Template customization IObjectSet Virtual SaveChanges ObjectStateManager control
Self-tracking entities SQL generation
improvements More LINQ operator support LINQ extensibility ExecuteStoreQuery ExecuteStoreCommand SPROC import
improvements Model defined functions WPF designer integration Code-Only development
(Feature CTP)
App Code
Customers
ADO.NET
ProvidersSQL Server
Oracle
...
DataReader
Customers
Oracle
Command
Execute
Provider Specific (PL/SQL)
“SELECT * FROM CUSTOMERS”Customers
ADO.NET Today
Customers
Conceptual Model
UKCustomer
UKPremiumCustomer
Map
ADO.NET Entity Framework
App Code
Customers
ADO.NET
Providers*SQL Server
Oracle
...
Oracle
EntityProvider
DataReader
UKCustomer
Command
Execute
Conceptual Model
UKCustomer
UKPremiumCustomer
Map
Provider Agnostic (ESQL)
“SELECT * FROM UKCUSTOMER”
UKCustomer
ADO.NET Entity Framework
.NET Entity Provider (Entity SQL)
Command
ConnectionReader
EF
Store
.NET Data Provider
V2.0
Command
ConnectionReader
Adapter
EF
Conceptual Model
Entity Entityrelationship
Mapping (MSL)
EFProgramming Model
Object Relational Mapping
LINQ
ADO.NET Entity Framework
Store
Good Customers
IDFirstNameLastName
Bad Customers
IDForeNameSurname
Customers
CustomerIdFirstLastType
EntitiesMapping
Type=“G”
Type=“B”
Mapping Examples ( 1 – Splitting )
Store
Customer
CustomerId
First
Last
EntitiesMapping
CustomersID
FirstName
LastName
IsPremium
Overdraft
AccountManager PremiumCustomer
Overdraft
AccountManager
?
* Framework also supports TPT
Mapping Examples ( 2 – TPH )
Store
UkCustomer
CustomerIdName
EntitiesMapping
ClientView1select c.id, c.namefrom customers cwhere c.country = ‘UK’
p_DeleteUkCustomer
p_UpdateUkCustomer
p_InsertUkCustomer
Mapping Examples ( 3 – View + SPs )
Any Question