Resources on ADO.NET Entity Framework 6
New Features in EF6
These are some of the more notable new features in EF6. For a complete list of changes see Version History.
Async Query & Save (EF Designer & Code First) Asynchronous query and save using the async and await keywords. |
Connection Resiliency / Retry Logic (EF Designer & Code First) Automatically retry any commands that fail due to connection breaks . |
Logging and Intercepting Database Operations (EF Designer & Code First) Anytime EF sends a command to the database this command can be intercepted by application code . |
Code-Based Configuration (EF Desigener & Code First) Code-based configuration is achieved by creating a subclass of DbConfiguration . |
Custom Code First Conventions (Code First only) Write your own conventions to help avoid repetitive configuration. For more advanced scenarios you can use Model-Based Conventions. |
Code First Insert/Update/Delete Stored Procedures (Code First only) Configure EF to use stored procedures to update data. |
Testing with a Mocking Framework (EF Designer & Code First) Create test doubles using a mocking framework (such as Moq). |
Testing with Your Own Test Doubles (EF Designer & Code First) Write your own in-memory implementation of your context and DbSets . |
Working with Transactions (EF Designer & Code First) Learn how to control the use of trasactions with Entity Framework. |
Connection Management (EF Designer & Code First) Learn how to control connection open/close and work with existing database connections. |
Customizing the Migrations History Table (Code First only) Customize the definition of the __MigrationHistory table. |
Custom Migrations Operations (Code First only) Create additional operations to be used in your code-based migrations . |
Dependency Resolution (EF Desigener & Code First) Lower level building blocks that enable the Code-Based Configuration feature. |
Learn More About Setting Up Your Model
Which Workflow Should I UseFind out about the EF Designer and Code First and which one is best for you. |
Connections and ModelsLearn how EF works out which database to connect to and how to calculate the model. |
Connection Resiliency / Retry Logic (EF6 onwards) Automatically retry any commands that fail due to connection breaks . |
Performance ConsiderationsFind out how to get the best performance out of Entity Framework. |
Pre-Generated Mapping ViewsImprove application warm-up time with pre-generated mapping views. |
Working with Microsoft SQL AzureThere are a number of characteristics of SQL Azure that need to be taken into account when using EF. |
Entity Framework Power ToolsThe EF Power Tools provide a preview of features that are being considered for the main EF tooling. |
Code-Based Configuration (EF6 onwards) Code-based configuration is achieved by creating a subclass of DbConfiguration . |
Configuration File SettingsEF allows a number of settings to be configured from your applications configuration file. |
Dependency Resolution (EF Desigener & Code First) Lower level building blocks that enable the Code-Based Configuration feature. |
GlossaryDefinition of terms that are commonly used when talking about Entity Framework. |
Creating a Model with Code First
These topics are specific to models created using EF Code First.
Code First to a New DatabaseUse Code First to define your model in code and then generate a database. |
Code First to an Existing DatabaseUse Code First to create a code based model that maps to an existing database. |
ConventionsFind out about the conventions Code First uses to build your model. |
Custom Code First Conventions (EF6 onwards) Write your own conventions to help avoid repetitive configuration. For more advanced scenarios you can use Model-Based Conventions. |
Data AnnotationsData Annotations provide a simple way to configure your model by applying attributes to your classes. |
Fluent API - Configuring/Mapping Properties & TypesLearn how to configure properties/types and the columns/tables they map to using the Fluent API. |
Fluent API - Configuring RelationshipsFind out how to configure relationships and the foreign key constraints they map to using the Fluent API. |
Fluent API with VB.NETThis walkthrough shows how to use the fluent API in VB.NET projects. |
Code First Insert/Update/Delete Stored Procedures (EF6 onwards) Configure EF to use stored procedures to update data. |
Enum Support (EF5 Onwards) The domain classes that make up your Code First model can contain enum properties. |
Spatial Data Types (EF5 Onwards) The DbGeography and DbGeometry types can be used in your model. Also see the information about provider support for spatial types. |
Code First MigrationsLearn more about upgrading, downgrading and creating SQL scripts with Code First Migrations. |
Code First Migrations in Team EnvironmentsLearn how to successfully use migrations when working in a team of developers. |
Automatic Code First MigrationsAutomatic migrations allow you to upgrade your database without code-based migrations in your project. |
Customizing the Migrations History Table (Code First only) Customize the definition of the __MigrationHistory table. |
Custom Migrations Operations (EF6 onwards) Create additional operations to be used in your code-based migrations . |
Migrate.exeUse migrate.exe to apply migrations to a database from a command line. |
Defining DbSetsDiscover the various options for defining DbSets on your derived context. |
Creating a Model with the EF Designer
These topics are specific to models created using the EF Designer.
EF Designer to a New Database (Model First) Use Model First to define your model using boxes and lines and then generate a database. |
EF Designer to an Existing Database (Database First) Use Database First to create a boxes and lines model that maps to an existing database. |
Complex TypesFind out how to group properties on your entities into complex types. |
Associations/RelationshipsLearn how to configure relationships in your model. |
Enum Support (EF5 Onwards) Using the EF Designer you can now add enum properties to your entities. |
Spatial Data Types (EF5 Onwards) The DbGeography and DbGeometry types can be used in your model. Also see the information about provider support for spatial types. |
TPT Inheritance PatternLearn how to implement the Table-per-Type (TPT) inheritance pattern in your model. |
TPH Inheritance PatternLearn how to implement the Table-per-Hierarchy (TPH) inheritance pattern in your model. |
Query with Stored ProceduresUse stored procedures to load data from the database. |
Stored Procedures with Multiple Result SetsUse stored procedures with multiple result sets to load data from the database. |
Insert, Update & Delete with Stored ProceduresUse stored procedures to insert, update and delete data. |
Map an Entity to Multiple Tables (Entity Splitting) Learn how to map the properties of an entity to columns in multiple tables. |
Map Multiple Entities to One Table (Table Splitting) Learn how to map the columns of a table to properties in multiple entities. |
Table-Valued Functions (EF5 onwards) Table-valued functions (TVFs) in your database can be used with models created using the EF Designer. |
Multiple Diagrams per Model (EF5 onwards) The EF Designer allows you to have several diagrams that visualize subsections of your overall model. |
Defining QueriesA defining query is like a view that is defined in your model, rather than the database. |
Code Generation TemplatesFind out how to customize the code that is generated from your model. |
Reverting to ObjectContextNew models created in VS2012 generate code that uses DbContext, but you can revert to ObjectContext. |
EDMX Files Covers properties of EDMX files and specification of the xml format (including CSDL, SSDL & MSL). |
Learn More About Using Your Model
Working with DbContextGuidance on how to manage instances of your context class. |
Querying/Finding EntitiesLearn how to retrieve data from the database using LINQ and the Find method. |
Async Query & Save (EF6 onwards) Asynchronous query and save using the async and await keywords. |
Logging and Intercepting Database Operations (EF6 onwards) Anytime EF sends a command to the database this command can be intercepted by application code . |
Working with RelationshipsFind out how to access and manipulate data using relationships. |
Loading Related EntitiesEF supports the eager, lazy and explicit loading patterns for loading related data. |
Working with Local DataAccess your in-memory entity instances and the additional information EF is tracking about them. |
N-Tier Applications Learn how to use Entity Framework to build N-Tier applications, including Self-Tracking Entities. |
Raw SQL QueriesFind out how to load data from a raw SQL query directly against the database. |
Optimistic Concurrency PatternsLearn about the various strategies for dealing with concurrency exceptions in EF. |
Working with ProxiesProxies derive from your entities and override virtual properties to enable features such as lazy loading. |
Automatic Detect ChangesFind out what detect changes is and when you may want to disable automatic detect changes.. |
No-Tracking QueriesNo-tracking allows you to query for entities without having the results be tracked by the context. |
The Load MethodLoad entities from the database into the context without immediately doing anything with those entities. |
Add/Attach and Entity StatesGet familiar with adding and attaching entities and setting entity states in disconnected/N-Tier scenarios. |
Working with Property ValuesFind out how to access the current, original and database values for your entity instances. |
Testing with a Mocking Framework (EF6 onwards) Create test doubles using a mocking framework (such as Moq). |
Testing with Your Own Test Doubles (EF6 onwards) Write your own in-memory implementation of your context and DbSets . |
Working with Transactions (EF6 onwards) Learn how to control the use of trasactions with Entity Framework. |
Connection Management (EF6 onwards) Learn how to control connection open/close and work with existing database connections. |
API DocumentationFind out more about a particular namespace, class, property or method in Entity Framework. |
Using EF With Other Technologies
ASP.NET MVCEF provides the M (Model) in MVC. |
ASP.NET Web APIUse EF and ASP.NET Web API to build HTTP services that reach a broad range of clients. |
ASP.NET Web FormsFind out how to perform data access in your Web Forms application using EF. |
Data Binding with WPF (Windows Presentation Foundation) Learn how to create a master/detail window with WPF data binding using EF for data access. |
Data Binding with WinForms (Windows Forms) Learn how to create a master/detail window with WinForms data binding using EF for data access. |