It’s been a long haul and a long wait. I started work on this course, then switched gears to work on the Domain–Driven Design Fundamentals course with Steve Smith. When I returned to work on the EF6 course, a number of minor releases and patch releases had been published so I had to revise much of what I had already recorded, edited and produced.
But today, finally, the full course has been published on Pluralsight.
Entity Framework 6: Ninja Edition
– What’s New in EF6
It is a little over 7 hours long. This is what I would have done had I written another huge book. So if you are looking for my next book, just watch this course! And you can go back to it for reference.
If you don’t have a Pluralsight subscription (and honestly, the $29 monthly fee if you were to just subscribe to watch this course, is less than those huge books), send me a note and I’ll send you a code for a trial. You’ll probably realize quickly that you want a subscription though to continue accessing the enormous library.
Course Description
Entity Framework 6 brings major improvements to EF that allow developers to align their data access with advanced software practices. The biggest news for EF6 is that it is open-source and has gained a lot from developer community input. Features with broad appeal such as stored procedure mapping in code first, support for the Async/Await pattern when executing queries and commands, simpler patterns for unit testing, and built-in database logging capabilities have gotten a lot of visibility. EF6 is now very extensible with custom Migrations, custom mapping conventions, and the introduction of Dependency Injection patterns to open up low-level DbContext configuration. There are new methods and properties that allow simpler and smarter coding patterns. Rather than present a high level list of the new features, this course dives into each new feature in EF6, ensures that you understand not only what it is for, but how it works, scenarios where you can benefit from it, and gotchas you should watch out for. This course provides a comprehensive look at what EF6 adds to Entity Framework, and it will leave you with the ability to truly benefit from all of the Ninja power that’s been added to this version of EF.
Course Outline
Overview of What’s New in EF6
Introduction
What Is Entity Framework?
What’s in This Course?
What’s in This Module?
A Brief History of Entity Framework
Why EF6?
A Lap Around EF’s CodePlex Site
Overview of Changes to the EF Designer
Overview of New Features
What’s Not (Yet) in EF6
Summary
Resources
Getting to EF6
Introduction
In This Module
Getting EF6 Into New and Old Projects
Updating Projects to EF6
Summary
Resources
Performance and Stability Improvements
Introduction
In This Module
Faster Processing of LINQ’s Enumerable Contains
Faster Mapping View Generation
Using nGen to ‘Pre-JIT’ EF6 Assembly
Reuse Open Database Connections
Create DBs That Are More Scalable and Less Prone to Deadlocks
Connection Resiliency for Transient Database Connections
Digging into the Connection Resiliency Feature
Quick Review
Resources
Changes to the EF Tooling
Introduction
EF Designer History
In This Module
EF Designer’s New MSI Installer
Creating a Code First Model From a Database in the Designer
Database Views in Your Code First Model
Customizing the Code First Designer Templates
Refactoring the Generated POCOs and Model
A Warning About a Naming Conflict With Code First From Database
What Does the Empty Code First Model Wizard Do?
Comparing the Code First Model Wizard to the EF Power Tools
Using EF4 or EF5 With the New Designer
A Notable Change to the Model First Workflow
Why You Still Need the EF Power Tools
Quick Review
Resources
Stored Procedure Mappings for Code First
Introduction
In This Module
Understanding EF Stored Procedure Mappings
Visualizing Stored Procedure Mappings
Differences Between Designer-Based and Code First Model Mappings
Conventions for Procedures Created by Code First
Customizing Mappings to Work With Existing Stored Procedures
Quick Review
Resources
Custom Code First Conventions
Introduction
In This Module
Custom Code First Conventions: Why Would You Want Them?
Custom Conventions Basics With Lightweight Conventions
Using Attributes to Specify Custom Conventions
Encapsulating Custom Conventions
Understanding and Controlling Execution Order
Model-Based Conventions
Extending Existing Conventions
Quick Review
Resources
More Code First Goodies
Introduction
In This Module
Database Index Support in Code First
Adding Indexes With Fluent API
Setting the Default Database Schema
Using AddFromAssembly to Load Conventions and Configurations
Understanding and Fixing How Code First Pluralizes Table Names
Using a PluralizationService to Localize Non-English Table Names
Implementing a Custom Pluralization Rule in Your Data Layer
Mapping to Results of Table Value Functions and Stored Procedures
Quick Review
Resources
Enhancements to Code First Migrations
Introduction
In This Module
Affecting the Schema of the Migrations History Table
Smarter Migrations With Idempotent Scripts
Limitations of Existing Migrations Methods
How Migrations Get From Method to SQL
Create Custom Migrations for Other Database Operations
Why HasColumnAnnotation and HasTableAnnotation?
Implementing a Simple Table Annotation
Implementing More Complicated Annotations
Performance Tweak for MigrateDatabaseToLatestVersion Initializer
Migrate From Multiple Models to a Single Database
Using HasDefaultSchema and ContextKey for Multiple Model Support
Easier Migrations for Multiple Models in a Single Project
Combining Database Initializers and Migrations
Quick Review
Resources
Improved Database Interaction
Introduction
In This Module
Simple Database Logging With the Log Property
Tweaking the Log Functionality
SQLCE Functions for LINQ Queries
Introducing the Async EF6 Methods
Demonstrating the Effect of Asynchronous EF6 Methods
Perception and Performance: Load Testing With Async EF6
Quick Review
Resources
Code-Based DbContext Configurations and Interceptors
Introduction
Why DbConfiguration?
In This Module
Creating and Triggering a DbConfiguration Class
Why Move Config File Settings to Code?
Moving Connection Factory to DbConfiguration
Moving Database Initializers to DbConfiguration
The New NullDatabaseIntializer
Provider Services and DbConfiguration
Tap into the Pipeline With Interceptors
Beyond the Interceptor Basics
What Stops Does the DbCommandInterceptor Make in the Pipeline?
Building an Interceptor for Database Logging
Using Interceptors to Solve Complex Problems
Understanding the Role of Dependency Resolution
Hosting DbConfiguration in External Assemblies
Quick Review
Resources
Sometimes It’s the Little Things
Introduction
In This Module
EF6 and Mocking Frameworks
Writing Tests to Mock Methods Like DbSet.Find
Writing Tests to Mock LINQ Queries
Nested Entities and Complex Types
Fixing the Ambiguous Types Problem
Custom Equals vs. Change Tracker Equals
Smarter LINQ to Entities Queries
Yes, You Can Haz Changes With HasChanges
Quick Review
Resources
Introduction
What Is Entity Framework?
What’s in This Course?
What’s in This Module?
A Brief History of Entity Framework
Why EF6?
A Lap Around EF’s CodePlex Site
Overview of Changes to the EF Designer
Overview of New Features
What’s Not (Yet) in EF6
Summary
Resources
Getting to EF6
Introduction
In This Module
Getting EF6 Into New and Old Projects
Updating Projects to EF6
Summary
Resources
Performance and Stability Improvements
Introduction
In This Module
Faster Processing of LINQ’s Enumerable Contains
Faster Mapping View Generation
Using nGen to ‘Pre-JIT’ EF6 Assembly
Reuse Open Database Connections
Create DBs That Are More Scalable and Less Prone to Deadlocks
Connection Resiliency for Transient Database Connections
Digging into the Connection Resiliency Feature
Quick Review
Resources
Changes to the EF Tooling
Introduction
EF Designer History
In This Module
EF Designer’s New MSI Installer
Creating a Code First Model From a Database in the Designer
Database Views in Your Code First Model
Customizing the Code First Designer Templates
Refactoring the Generated POCOs and Model
A Warning About a Naming Conflict With Code First From Database
What Does the Empty Code First Model Wizard Do?
Comparing the Code First Model Wizard to the EF Power Tools
Using EF4 or EF5 With the New Designer
A Notable Change to the Model First Workflow
Why You Still Need the EF Power Tools
Quick Review
Resources
Stored Procedure Mappings for Code First
Introduction
In This Module
Understanding EF Stored Procedure Mappings
Visualizing Stored Procedure Mappings
Differences Between Designer-Based and Code First Model Mappings
Conventions for Procedures Created by Code First
Customizing Mappings to Work With Existing Stored Procedures
Quick Review
Resources
Custom Code First Conventions
Introduction
In This Module
Custom Code First Conventions: Why Would You Want Them?
Custom Conventions Basics With Lightweight Conventions
Using Attributes to Specify Custom Conventions
Encapsulating Custom Conventions
Understanding and Controlling Execution Order
Model-Based Conventions
Extending Existing Conventions
Quick Review
Resources
More Code First Goodies
Introduction
In This Module
Database Index Support in Code First
Adding Indexes With Fluent API
Setting the Default Database Schema
Using AddFromAssembly to Load Conventions and Configurations
Understanding and Fixing How Code First Pluralizes Table Names
Using a PluralizationService to Localize Non-English Table Names
Implementing a Custom Pluralization Rule in Your Data Layer
Mapping to Results of Table Value Functions and Stored Procedures
Quick Review
Resources
Enhancements to Code First Migrations
Introduction
In This Module
Affecting the Schema of the Migrations History Table
Smarter Migrations With Idempotent Scripts
Limitations of Existing Migrations Methods
How Migrations Get From Method to SQL
Create Custom Migrations for Other Database Operations
Why HasColumnAnnotation and HasTableAnnotation?
Implementing a Simple Table Annotation
Implementing More Complicated Annotations
Performance Tweak for MigrateDatabaseToLatestVersion Initializer
Migrate From Multiple Models to a Single Database
Using HasDefaultSchema and ContextKey for Multiple Model Support
Easier Migrations for Multiple Models in a Single Project
Combining Database Initializers and Migrations
Quick Review
Resources
Improved Database Interaction
Introduction
In This Module
Simple Database Logging With the Log Property
Tweaking the Log Functionality
SQLCE Functions for LINQ Queries
Introducing the Async EF6 Methods
Demonstrating the Effect of Asynchronous EF6 Methods
Perception and Performance: Load Testing With Async EF6
Quick Review
Resources
Code-Based DbContext Configurations and Interceptors
Introduction
Why DbConfiguration?
In This Module
Creating and Triggering a DbConfiguration Class
Why Move Config File Settings to Code?
Moving Connection Factory to DbConfiguration
Moving Database Initializers to DbConfiguration
The New NullDatabaseIntializer
Provider Services and DbConfiguration
Tap into the Pipeline With Interceptors
Beyond the Interceptor Basics
What Stops Does the DbCommandInterceptor Make in the Pipeline?
Building an Interceptor for Database Logging
Using Interceptors to Solve Complex Problems
Understanding the Role of Dependency Resolution
Hosting DbConfiguration in External Assemblies
Quick Review
Resources
Sometimes It’s the Little Things
Introduction
In This Module
EF6 and Mocking Frameworks
Writing Tests to Mock Methods Like DbSet.Find
Writing Tests to Mock LINQ Queries
Nested Entities and Complex Types
Fixing the Ambiguous Types Problem
Custom Equals vs. Change Tracker Equals
Smarter LINQ to Entities Queries
Yes, You Can Haz Changes With HasChanges
Quick Review
Resources
Sign up for my newsletter so you don't miss my conference & Pluralsight course announcements!
This is one of the best course for who used/using/planning EF in project.
Clean presentation.
Thanks Julie for this course.
Thanks,
Paashant
Thanks Prashant! 🙂
Hi dear Julie!
thank you so much!
i love you and i love your teaching.
Hi Julie,
I just tried to reproduce the NinjaDemo app you present in your PluralSight course. I’m using VS2013 and installed the EF Power Tools Beta 4 (Version 0.9.0.0) and was not able to perform the “View Entity Data Model (Read only)” command from the contextual menu of the NinjaContext.cs class. (The NinjaDomain.DataModel project was previously set to startup project). When launching the “Entity Framework / View Data Entity Model (Read-only)” command from the contextual menu, I get the following error message from VS: “Could not load file or assembly ‘NinjaDomain.Classes, Version 1.0.0.0, Culture=neutral, … The system cannot find the file specified.”
The solution compiles without any error and the compiled file NinjaDomain.Classes.dll is located in the debug/bin directory.
What’s going on ?
Thank you for your help.
It might have to do with startup project. Though it is different than the problems listed here (http://thedatafarm.com/data-access/entity-framework-power-tool-tips-to-view-model-a-feature-i-depend-on/) does anything in that post help?