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.
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.
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 |