Tuesday, March 20, 2018

Entity Framework Core 2.0–DbContext pooling

Version 2.0 of EF Core introduces a new way to register your DbContext that transparently introduces a pool of reusable DbContext instances.

This was the code you had to use before 2.0:

Typically this code resulted in creating a new DbContext for each request which introduces an extra performance penalty for your requests.

In EF Core 2.0 you can replace this by:

If this method is used, at the time a DbContext instance is requested by a controller it will first check if there is an instance available in the pool. Once the request processing finalizes, any state on the instance is reset and the instance is itself returned to the pool.

Warning: As all DbContext instances should be completely equal, you are limited in what you can do in the OnConfiguring() method of the DbContext.

No comments: