MD. SAIFULLAH AL AZAD, Software Architect . ADO.NET Entity Framework. LEADS Corporation Limited. 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?. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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