5 out of 5
1 review on Udemy

Mastering Entity Framework Core – Migrations & Testing

Master Entity Framework in a step-by-step manner and learn advanced querying techniques, migrations, and testing
Packt Publishing
42 students enrolled
English [Auto-generated]
Understand how to evolve database structures using migrations
Set up an MVC .NET Core application that uses Entity Framework
Enhance the performance and/or scalability of Entity Framework Core
Explore data validation inside models using attributes
Handle validation inside MVC Core via the Web API
Learn advance query and update techniques such as joins and access stored procedures and views

You will start the course by exploring data validation and learn how to implement data validation inside your model using attributes. Then you will use validation inside MVC controllers and expose validations inside your MVC views in the user interface. Next you will delve into advanced query techniques. You will see how asynchronous code helps your applications scale better and explore query performance. Further, you will learn how to protect application data from concurrent access by multiple users, see how transactions enable changes to multiple tables and learn how to create an abstraction layer on top of Entity Framework by using the repository pattern.

Next you will embrace migrations and embark on a journey designed to develop the database structure as your application evolves using Entity Framework Core migrations. Then you will create custom migrations that update database schemas and use custom scripts to perform migrations while protecting existing data during rename operations. Finally you will explore testing and set up a further learning path by writing unit and integration tests. You will see how to bring Entity Framework into a project based on an existing database. In conclusion, you will learn about additional areas Entity Framework core can be used in, and what types of data structure (besides RDBMS) can be accessed with EF Core.

About the author

Sergey Barskiy has a Bachelors’ Degree in Computer Science with over 20 years of experience in Software Development. Sergey has architected and coded many software projects using Microsoft technologies for over 15 years. Presently he is working as an Architect with Tyler Technologies, the largest provider of municipal government software in the United States. He was a Microsoft MVP in IIS/ASP.NET for years, division that works on Entity Framework at Microsoft. He has used Entity Framework on large projects starting with the first beta in 2008. He has been working on web applications for almost a decade. He is familiar with a number of web technologies, such as Angular, Web Api, and other web frameworks He feels he has a lot to share with the audience, given the fact that he wrote a book on Entity Framework and authored a video on using Angular 2 in an MVC Core application. He has been using EF and .NET on a daily basis for almost a decade.

Exploring Data Validation

The Course Overview

This video will give an overview of the entire course

Implementing Data Validation Using Attributes

The aim of this video is to make sure we validate the data before persisting it in the database to ensure all business rules are followed.

Validation In Controllers

The aim of this video is to intercept invalid data in our API inside web controller instead of waiting till DbContext fires to have more flexibility in the process.

Exposing Validation in MVC Views

The aim of this video is to provide helpful user hints and better experience

Using Business Objects for Validation

The aim of this video is to use business objects for validation to provide better separation of concerns between UI and persistence layer.

Advanced Query Techniques

Windowing Functions

The aim of this video is to learn how to retrieve the data in pages using windowing functions.

Working with Joins

The aim of this video is to combine related data from multiple tables in a single results set. This is where joins come in.

Left Outer Joins and Unions

The aim of this video is to combine similar data from unrelated tables in a single query using unions.

Using Stored Procedures and Views

The aim of this video is to use existing database assets or have a facility to optimize our data access code with database procedures and views.

Performance and Scalability

Asynchronous Code

The aim of this video is to consider performance and scalability of our EF Core based applications as part of development. We need to optimize for cost, and this is where processing more request on the same hardware is important. Asynchronous API lets us achieve that.

Profiling Queries and Logging

The aim of this video is to use tools at our disposal to analyze performance bottlenecks and plan to address them.

General Performance Tips

The aim of this video is to follow a few patterns to avoid potential performance issues in EF Core.

Advanced Update Support

Concurrency Handling

The aim of this video is to add concurrency handling to our models and controllers to address this problem.

Understanding Transactions

The aim of this video is to use tools at our disposal to analyze performance bottlenecks and plan to address them.

Using Repository Pattern With EF

Sometimes we want more isolation from databases when we use entity framework. This is where repository pattern could proof to be useful.


Automatic Migrations

The aim of this video is to change the object model and consequently database schema. Entity Framework Core has functionality called Migrations, designed to assist using this task, allowing to maintain code and schema together.

Migrations API

The aim of this video is to learn migrations API to support typical database schema evolution scenario.

Manual Migrations

The aim of this video is to make non-structural changes, such as populate tables with preloaded data. Those are use cases for writing migrations by hand instead of scaffolding them.

Handling Existing Data

The aim of this video is to study techniques and API that will help us avoid data loss as we evolve database schema via Migrations.

Testing and Runtimes

Creating Integration Tests

The aim of this video is to test our code, such as a Web API controller, to ensure that we save or retrieve data properly in our application.

Creating Unit Tests

The aim of this video is to insert new data into the database through web service calls, we need to add insert implementation to our Web API controller.

Reverse Engineer Context for an Existing Database

The aim of this video is to start using EF Core on an established project with an existing database. We want to be able to create DbContext for this database without spending a lot of effort.

Other Databases and Runtimes

The aim of this video is to know what operating systems, runtimes and databases we can use EF Core with.

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
5 out of 5
1 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


3 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion