Learn Entity Framework in a day with Code First, Model First and Database First
The document provides a comprehensive overview of the Entity Framework (EF), an ORM framework from Microsoft aimed at simplifying data access for .NET applications. It details EF's architecture, the new features introduced in version 5, and various approaches for database integration such as database-first, model-first, and code-first methods. Additionally, it highlights the advantages of using EF, including reduced development time and flexibility in changing mappings without altering application code.
OUTLINE • Introduction toEntity 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 ENTITYFRAMEWORK??? • 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 inEF 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 DATABASEFIRST 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
HOW TOs The stepsinvolved 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
HOW TOs The stepsinvolved 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
HOW TOs The stepsinvolved 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)
FEATURES • Works witha 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 developmenttime • 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 “Awise man can learn more from a foolish question than a fool can learn from a wise answer.” Bruce Lee