After migration of my project to .NET Core 2.0, fresh install of Visual Studio 15.5 and .NET CORE sdk 2.1.2, I am having an error when trying to add a migration using EF Core.
C:\Projects\SQLwallet\SQLwallet>dotnet ef migrations add IdentityServer.
An error occurred while calling method 'BuildWebHost' on class 'Program'.
Continuing without the application service provider. Error: Parameter count mismatch.
Done. To undo this action, use 'ef migrations remove'
As a result an empty migration class is created, with empty Up() and Down() methods.
The program.cs looks like:
public class Program
{
public static IWebHost BuildWebHost(string[] args, string environmentName)
{...}
public static void Main(string[] args)
{
IWebHost host;
host = BuildWebHost(args, "Development");
Please advise. The migration worked fine while on Core 1.0. I have a IDesignTimeDbContextFactory implemented, and my DBContext class has a parameterless constructor, so it could not be the reason.
My solution is to pass Array to HasData function, not generic List.
If you use List, try to convert array with ToArray function.
Here is an example:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var users = new List<User>();
var user1 = new User() { Id = 1, Username = "user_1" };
var user2 = new User() { Id = 2, Username = "user_2" };
users = new List<User>() { user1, user2 };
modelBuilder.Entity<User>().HasData(users.ToArray());
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With