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