在部分类中定义 OnConfiguring() 时无法执行“dotnet ef migrations add init”

问题描述 投票:0回答:1

以下是重现我遇到的问题的步骤:

  1. 克隆我的代码

    git clone https://github.com/doggy8088/EFCore7UnableDoMigration.git
    cd EFCore7UnableDoMigration
    
  2. 进行迁移

    dotnet ef migrations add init
    

    以下错误:

    无法创建“ContosoUniversityContext”类型的对象。有关设计时支持的不同模式,请参阅 https://go.microsoft.com/fwlink/?linkid=851728

这就是我所做的:

  1. 我添加了一个

    Data\ContosoUniversityContextPartial.cs
    部分类,它定义了一个不带参数的构造函数和一个
    OnConfiguring
    方法。

    我参考了这个文档:Design-time DbContext Creation

  2. 我希望我的 DbContext 类应该能够被

    dotnet-ef
    工具识别。

版本信息

  • EF Core 版本:
    7.0.10
  • 数据库提供商:
    Microsoft.EntityFrameworkCore.SqlServer
  • 目标框架:
    .NET 7.0
  • 操作系统:
    Windows 10
  • IDE:
    N/A
entity-framework entity-framework-core entity-framework-migrations
1个回答
0
投票

要实例化上下文,EF Core 使用

Microsoft.Extensions.DependencyInjection
。但它有一个奇怪的行为,并且没有选择所需的构造函数。本期的所有详细信息:

ActivatorUtilities.CreateInstance 取决于构造函数定义的顺序

它已在 .NET 8 预览版中修复。

要解决该问题,您可以等待 .NET 8(11 月发布)或更新

Microsoft.Extensions.DependencyInjection
至预览版(兼容旧版 .NET)。

© www.soinside.com 2019 - 2024. All rights reserved.