从EF Core 2.1升级到3.1后,无法在项目之间进行数据库迁移



我一直在使用

dotnet ef --startup-project "../WebApp/WebAppProject/" migrations add migrationName

为了生成迁移,但在将EF Core版本从2.1升级到3.1后,它开始抛出这样的错误:

An error occurred while accessing the Microsoft.Extensions.Hosting 
services. 
Continuing without the application service provider.
Error: Problem with determining the path to the folder storing the application files
System.MissingMethodException: Method not found: 'Microsoft.EntityFrameworkCore.Metadata.Builders.IndexBuilder Microsoft.EntityFrameworkCore.Metadata.Builders.EntityTypeBuilder`1.HasIndex(System.Linq.Expressions.Expression`1<System.Func`2<System.__Canon,System.Object>>)'.
at 

在的base.OnModelCreating(builder);

protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ApplyConfigurationsFromAssembly(typeof(Context).Assembly);
}

我的项目/文件夹结构

Container
|
|
|----- Common (project) (here I'm executing above mentioned command as I used to do it)
|
|
|
|----- Persistence
|
|
| Context.cs
| ----- Migrations
|
| Migration1.cs
| Migration2.cs
| Migration3.cs
| ....cs
|
| ----- WebApp
| ----- WebAppProject (project)
| WebApp.csproj
| Startup.cs
| Program.cs


DesignTimeDbContextFactory类位于WebApp/WebAppProject/内的Program.cs

一般来说,路径是好的,没有任何变化,它一直在工作,但在升级版本后,我不确定如何帮助该工具发现我的数据库

dotnet工具列表-全局3.1.7点网ef

除非您引用了一些旧的库版本或正在使用一些旧的EF Core CLI版本,否则精确的命令可以在解决方案结构中正常工作。

确保所有对EF Core库的引用都是最新的(即3.1.7(,并且EF Core Tools也安装了相同的版本。

(如果您认为情况已经如此,请随时发布项目文件的内容和EF Core CLI命令的--verbose输出。(

最新更新