Type Load Exception in EF Core Project

Viewed 31978

I have an ASP.NET Core 3.1 Web API application using EF Core. This is the my configuration in the ConfigureServices method of the Startup class:

services.AddDbContext<ApplicationContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("AppConn")));

The above configuration tested and works for a SQL Server database.

Then I switched to using Sqlite after installing its package successfully.

services.AddDbContext<ApplicationContext>(options =>
     options.UseSqlite("Data Source=sqlitedemo.db"));

But when I try to add the EF migration

add-migration initial -context ApplicationContext

I get this error:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

System.TypeLoadException: Could not load type 'Microsoft.EntityFrameworkCore.Internal.SemanticVersionComparer' from assembly 'Microsoft.EntityFrameworkCore, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.

{ Stack trace }

Exception has been thrown by the target of an invocation.

7 Answers

Please update to your entity framework core nuget package to 3.1.10(or latest 5.0.0). It will solve your problem.

I had EF Core 5 package installed, but not Microsoft.EntityFrameworkCore.Design and one package were implicitly referencing older version (Microsoft.EntityFrameworkCore.Design 3.0.0).

Installing explicit dependency on Microsoft.EntityFrameworkCore.Design 5.x.x resolved the issue for me.

I had this issue in a .NET Core 3.1 project. I fixed it by installing the package Microsoft.EntityFrameworkCore.Design in the startup project

I had a similar issue when all the dependencies seemed correct in my project. But the issue was that the context was in one project in the solution and a different project in the solution was the start-up project. And that project happened to include a different version of EFCore.

Using the context's project as the start-up project in the Package Manager Console resolved the issue for me.

add-migration -startupproject myProjectWithTheMigration

Make sure that each project referenced pulls in the same major/minor version of the Entity Framework nuget package.


I upgraded a project from V3 to V6 and didn't upgrade the EF Core nuget packages to 6. One project had 6 while the other had 3 and was receiving this error when I did an update-database.

Do not forget that for migrations, you must have the packages installed both in the main EntityFramework project and in the startup project.

Microsoft.EntityFramework.Core
Microsoft.EntityFramework.Core.Design

If you are trying to do migration, make sure install Microsoft.EntityFrameworkCore.Tools

Related