遇到错误 "Unable to create an object of type 'EFCoreContext'" 通常发生在尝试使用Entity Framework Core的Add-Migration
、Update-Database
或其他EF Core命令时,且EF Core工具不能自动创建DbContext
实例。这个问题可能有几个不同的原因,以下是一些解决策略:
1. 为 DbContext
提供一个无参构造函数
确保你的 EFCoreContext
类有一个无参的构造函数。EF Core在设计时尝试创建DbContext
实例,如果没有无参构造函数,它可能会失败。如果你的DbContext
仅有一个接收DbContextOptions
的构造函数,可以尝试添加一个无参构造函数:
public EFCoreContext() { }
2. 使用 IDesignTimeDbContextFactory
如果你的DbContext
依赖于外部配置或需要特定的构造参数,可以实现IDesignTimeDbContextFactory<TContext>
接口。这允许在设计时为EF Core命令提供一个具体的方式来创建DbContext
实例。创建一个类实现这个接口,并在CreateDbContext
方法中构造你的DbContext
:
public class EFCoreContextFactory : IDesignTimeDbContext