In this episode, Robert is joined by Phil Japikse for part 9 of a 10 part series on Entity Framework Core. This series is a follow-up to the 5 part series that was aimed at folks new to EF Core and provides a more in-depth exploration of a number of topics.
The fairly recent addition of Tracking and State Change events provides a mechanism for audit logging (among other uses). Phil shows how this works as well as takes a quick spin through the EF Core Interceptors.
Find the sample code here.
Learn more about Entity Framework core here.
- Part 1: Performance. Phil shows off all of the great performance improvements in EF Core.
- Part 2: View Models. Phil covers using straight SQL, stored procedures, and populating view models with projections.
- Part 3: Configuration. EF Core provides a wide range of configuration options for the derived DbContext and it's full support of dependency injection.
- Part 4: Build Your Model. This show is all about creating your EF Core entities to shape the database and using migrations to publish the model.
- Part 5: Global Query Filters. These are new in EF Core, and provide a great mechanism for handling scenarios like multi-tenancy and soft deletes.
- Part 6: Concurrency Conflicts. These have long been a problem for multi-user systems. Phil walks us through how concurrency checking works with EF Core and SQL Server, and all of the data provided back to the developer when a concurrency issue occurs.
- Part 7: Connection Resiliency. EF Core can gracefully handles transient database errors (if you enable the feature). Phil and Robert talk about what transient errors are, how to enable the feature, and how it effects using explicit permissions.
- Part 8: Computed Columns. Blending EF Core with server side functionality is a breeze with EF Core. Phil covers using computed columns in EF Core as well as mapping SQL Server function to C# functions for use in LINQ queries.
- Part 9: Change Tracking Events. (this episode)
- Part 10: Field Mapping. This enables EF Core to create your entities without calling the property setters, solving the long running problem of using an ORM with frameworks that use INotifyPropertyChanged, such as Windows Presentation Foundation (WPF).