The Entity Data Model
Learn More @ http://www.learnnowonline.com Copyright Š by Application Developers Training Company
Objectives • Learn how to create and use an Entity Data Model • Explore the raw XML behind the model as a way to understand how Entity Framework works • See how to use stored procedures within an Entity Framework model
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Agenda • • • •
Introduction Creating and Using an Entity Data Model Entity Data Model in the Raw Using Stored Procedures in the Model
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Introduction • Key link between entity objects and data Conceptual model Storage model Mapping model
• Application design is often at odds with database design • Can work with model in designer Or get messy with the XML
• At build, split into three XML files • Developers don’t have to know the database Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
The Models within the Model • Conceptual Model The actual Entity Data Model Provides what is needed to create data objects
• Storage Model Represents the database schemas Can be similar to conceptual model Decupling of conceptual design from the database
• Mapping Model Bridge between conceptual and storage models Map object properties to database fields Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Agenda • • • •
Introduction Creating and Using an Entity Data Model Entity Data Model in the Raw Using Stored Procedures in the Model
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Creating and Using an Entity Data Model • Can create from scratch using XML More productive using the designer
• Three approaches Database-first Model-first Code-first
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Creating a Model Using DatabaseFirst Design • Directly supported by the Entity Framework template • Wizard lets you Reverse-engineer the database schma Select tables, views, and stored procedures to include Build the model from selected objects
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Multiplicity • Used with associations • Number of entities that can be on each end of an association Sometimes referred to as cardinality
• Three options One: 1 Zero or one: 0..1 Many: *
• Can combine in various ways, such as 1:* 0..1:* *:* Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Entity Data Model Object Properties • Typical for Visual Studio • Use Properties windows to set values of properties for various objects • Model stores some in model’s XML to define a model, others guide object creation
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Creating a Model Using Model-First Design • Database-first design is common • Sometimes creating a new database with the application Could create the database first But model-first is another option Strictly speaking, Entity Framework has always had this option
• Generate Database from Model option • Entity Designer Database Generation Power Pack Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Sled Dog Event Registration Event Name EventDate Sponsor Location
1
*
Race Distance DogCount Trail
1
Mushing Leader1 Leader2
*
Team FirstName LastName City Country DogCount
Skijoring Dog1 Dog2 Dog3 NumberOfLeaders
Learn More @ http://www.learnnowonline.com Copyright Š by Application Developers Training Company
Explore the Model with the Model Browser • Working with large models can be hard in the designer Can be hard to understand the structure of the model Mapping Details windows doesn’t have details of storage model
• Overcome these limitations with the Model Browser
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Agenda • • • •
Introduction Creating and Using an Entity Data Model Entity Data Model in the Raw Using Stored Procedures in the Model
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Entity Data Model in the Raw • Designer is a graphical view only of the conceptual model Exposes most, but not all, features Ultimately, just a pretty face on the XML
• Need to have a basic understanding of the XML Sometimes have to manipulate the XML directly
• Can use any text editor But Visual Studio XML editor provides color-coding, wellformedness checks, and Intellisense
• Can’t have open in designer and XML simultaneously Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
XML Definition Languages • One for each model: Conceptual model uses Conceptual Schema Definition Language (CSDL) Storage model uses Store Schema Definition Language (SSDL) Mapping model uses Mapping Specification Language (MSL)
• Visual Studio includes XML schema files
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Model Build Mechanics • .edmx file contains XML for all three models Plus support for the graphical designer
• Saves as three files at build: Conceptual model to .csdl file Storage model to .ssdl file Mapping model to .msl file
• By default, stored in project assembly Can output three physical files Change the MetadataArtifactProcessing property of the entity container Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Agenda • • • •
Introduction Creating and Using an Entity Data Model Entity Data Model in the Raw Using Stored Procedures in the Model
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Using Stored Procedures in the Model • Entity Framework can automatically generate all code needed to do CRUD • Not necessarily ideal from DBA’s perspective Job is to make sure data is secure, performs well, is scalable, and meets needs of the application Dynamic SQL complicates the job
• Stored procedures vs. dynamic code Pick one or the other and go for it
• Entity Framework does both well Current version generates good code, mostly Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Ways to Use Stored Procedures • Few different ways Replace an entity’s insert, update, and delete functions to use stored procedures Use stored procedures that return data to entities are scalar values
• Entity Framework uses terms stored procedure and function interchangeably
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Updating the Model from the Database • Have to include stored procedures in the model before you can use them Only imported tables and views
• Entity Framework supports updating the model from the database • Will use several stored procedures
InsertCustomer, UpdateCustomer, and DeleteCustomer GetCustomersByRegion GetProductListByCategory GetProductCategoryAveragePrice Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Using Stored Procedures to Change an Entity • One of the most common ways to use stored procedures • Replaces Entity Framework default behavior for an entity • Will use the Customer object
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Using Stored Procedures that Read Data • Use stored procedures that read data in the model Materialize an entity object Random sets of data
• GetCustomersByRegion returns all of the fields of the Customer table • GetProductListByCategory returns fields from the Product and ProductCategory tables • Complex type Neither an entity or scalar type Use Model Browser to work with Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Using Stored Procedures that Return a Scalar Value • Another option is to retrieve a scalar value from a stored procedure • Dirty little secret Stored procedure still returns a result set Entity Framework extracts the value, sort of
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Learn More! • This is an excerpt from a larger course. Visit www.learnnowonline.com for the full details! • Learn more about Entity Framework on SlideShare: Introducing the Entity Framework
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company