gpt4 book ai didi

c# - 在 .NET core 2.0 中创建迁移步骤时,将 'IDesignTimeDbContextFactory' 的实现添加到项目错误

转载 作者:太空狗 更新时间:2023-10-29 22:35:46 35 4
gpt4 key购买 nike

我有一个 .NET core 1.0 webapp 运行良好。我不得不升级到 .NET Core 2.0。我还必须为我的 SQLite 数据库添加一个迁移步骤。

如果我启动这个命令:

Add-Migration MyMigrationStepName

我收到这个错误:

Unable to create an object of type 'ServicesDbContext'. Add an implementation of 'IDesignTimeDbContextFactory' to the project, or see https://go.microsoft.com/fwlink/?linkid=851728 for additional patterns supported at design time.

我在 SO 以及其他博客和网站上看到了很多答案,但没有一个真正说明在何处实现此类接口(interface)以及具体方法应包含哪些代码!

最佳答案

示例:

public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }
}

public class ApplicationContextDbFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
{
ApplicationDbContext IDesignTimeDbContextFactory<ApplicationDbContext>.CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder<ApplicationDbContext>();
optionsBuilder.UseSqlServer<ApplicationDbContext>("Server = (localdb)\\mssqllocaldb; Database = MyDatabaseName; Trusted_Connection = True; MultipleActiveResultSets = true");

return new ApplicationDbContext(optionsBuilder.Options);
}
}

位置:

将该类放在放置 ApplicationDbContext 的位置。当您使用 dotnet ef cli 命令时,它会自动被拾取。

关于c# - 在 .NET core 2.0 中创建迁移步骤时,将 'IDesignTimeDbContextFactory<ServicesDbContext>' 的实现添加到项目错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48805886/

35 4 0
文章推荐: c# - 不同行的下一个文本输入
文章推荐: c# - 作为子项的 DotNet Core .csproj 代码文件
文章推荐: java - Visual Studio 代码,Java 扩展,如何将 JAR 添加到类路径?
文章推荐: c# - 为什么匿名类型的 IEnumerable 不在 ToList() 上返回 List