在数据库类中没有没有没有参数的公共构造函数,因此需要告诉编译器如何创建数据库实例。
只需添加一个新类:
internal class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<MyAppContext>
{
public MyAppContext CreateDbContext(string[] args)
{
var builder = new DbContextOptionsBuilder<MyAppContext>();
builder.UseSqlServer(_dbConnection);
var context = new MyAppContext(builder.Options);
return context;
}
}
编辑
下面是如何获得
_dbConnection
var currentDir = Directory.GetCurrentDirectory();
var configBuilder = new ConfigurationBuilder();
configBuilder.SetBasePath(currentDir);
configBuilder.AddJsonFile("appsettings.json");
var config = configBuilder.Build();
_dbConnection = config.GetConnectionString("DefaultConnection");