gpt4 book ai didi

asp.net-core - 在 .NET Core 2.0 下添加 Entity Framework 迁移时出现 "Parameter count mismatch"错误

转载 作者:行者123 更新时间:2023-12-03 17:59:34 25 4
gpt4 key购买 nike

将我的项目迁移到 .NET Core 2.0、全新安装 Visual Studio 15.5 和 .NET CORE sdk 2.1.2 后,尝试使用 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'

结果创建了一个空的迁移类,带有空的 Up() 和 Down() 方法。

program.cs 看起来像:
public class Program
{

public static IWebHost BuildWebHost(string[] args, string environmentName)
{...}

public static void Main(string[] args)
{


IWebHost host;
host = BuildWebHost(args, "Development");

请指教。在 Core 1.0 上迁移工作正常。我有一个 IDesignTimeDbContextFactory 实现,我的 DBContext 类有一个无参数的构造函数,所以它不可能是原因。

最佳答案

我的解决方案是将 Array 传递给 HasData 函数,而不是通用 List
如果您使用 List,请尝试使用 ToArray 函数转换数组。

下面是一个例子:

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());
}

关于asp.net-core - 在 .NET Core 2.0 下添加 Entity Framework 迁移时出现 "Parameter count mismatch"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47692179/

25 4 0