IT Boxing Championship

Download Report

Transcript IT Boxing Championship

ADO.NET Entity
Framework
Deyan Varchev
General Manager
Avaxo Ltd.
What Is It?
Entity
Framework
LINQ
VS 2008
.NET 3.5
 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 objectoriented applications
to work with data.
THE PROBLEM BEING
ADDRESSED
Inherit differences between data expression in a relational
database and the same data expressed in an object-oriented
application.
The Logical Data Model
Tables
Views
Stored Procedures
Foreign Key
Relationships
• 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.
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 Result
Logical 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 Framework
Logical 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 FRAMEWORK
The 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 OUT
How 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 Entity
Database Tables
Entity Data Model
Implement Inheritance
Database 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 Objects
Database Result Desired
EDM Object Manipulation
INSERT ROW
Create new object
Add object to EDM Context
Update Context
DELETE ROW
Get instance of object from EDM
Context
Ask Context to remove the object
Update Context
UPDATE ROW
Get instance of object from EDM
Context
Update object
Update Context
Lecture Topic
Questions?