我一直在使用
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
输出。(