以下是重现我遇到的问题的步骤:
克隆我的代码
git clone https://github.com/doggy8088/EFCore7UnableDoMigration.git
cd EFCore7UnableDoMigration
进行迁移
dotnet ef migrations add init
以下错误:
无法创建“ContosoUniversityContext”类型的对象。有关设计时支持的不同模式,请参阅 https://go.microsoft.com/fwlink/?linkid=851728
这就是我所做的:
我添加了一个
Data\ContosoUniversityContextPartial.cs
部分类,它定义了一个不带参数的构造函数和一个OnConfiguring
方法。
我参考了这个文档:Design-time DbContext Creation
我希望我的 DbContext 类应该能够被
dotnet-ef
工具识别。
7.0.10
Microsoft.EntityFrameworkCore.SqlServer
.NET 7.0
Windows 10
N/A
要实例化上下文,EF Core 使用
Microsoft.Extensions.DependencyInjection
。但它有一个奇怪的行为,并且没有选择所需的构造函数。本期的所有详细信息:
ActivatorUtilities.CreateInstance 取决于构造函数定义的顺序
它已在 .NET 8 预览版中修复。
要解决该问题,您可以等待 .NET 8(11 月发布)或更新
Microsoft.Extensions.DependencyInjection
至预览版(兼容旧版 .NET)。