I am creating a Solution with 3 projects, one for the EF Core, one for the Database and the last one is for the API. The API is the startup project. I am trying to build a migration from the database project. This Migration is supposed to create the Identity's package built-in User tables. However, I keep receiving the error above.
All my projects are ASP.NET Core 5.0
The Packages I am using are:
For the DB Project:
*EntityFrameWorkCore
*EntityFrameWorkCore.Tools
*Install-Package Pomelo.EntityFrameworkCore.MySql -Version 5.0.0-alpha.2
*Microsoft.AspNetCore.Identity
*Microsoft.AspNetCore.Identity.EntityFrameworkCore
For the API Project:
*EntityFrameWorkCore.Design
I have referenced the DB project in the API startup Project
In the API Project I did the following changes:
To the Startup.cs
public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //To Connect to MySQL: string mySqlConnectionStr = Configuration.GetConnectionString("DefaultConnection"); services.AddDbContextPool<DBAccessContext>(options => options.UseMySql(mySqlConnectionStr, ServerVersion.AutoDetect(mySqlConnectionStr))); services.AddControllers(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "Wasel.API", Version = "v1" }); }); } To the appsetting.json:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", //Connection String for MySQL "ConnectionStrings": { "DefaultConnection": "server=localhost; port=3306; database=my_DB; user=root; password=123456; Persist Security Info=False; Connect Timeout=300" } } And finally my DBAccessContect is:
public class DBAccessContext : IdentityDbContext<User> { public DBAccessContext (DbContextOptions<DBAccessContext> options) : base(options) { } } where user is
public class User : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } }