c# - IDesignTimeDbContextFactory 并不总是需要的?

标签 c# asp.net-core-mvc .net-core entity-framework-core

以前我必须实现 IDesignTimeDbContextFactory 才能运行迁移,例如: PM > 添加迁移初始 PM > 更新-数据库

如果不是,控制台会抛出一个错误并将我带到这里:https://learn.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext#use-idesigntimedbcontextfactory .

所以我按照它的建议做了,并开始运行迁移。 之后我创建了新项目,而不必实现 IDesignTimeDbContextFactory。无论如何迁移都有效。这怎么可能? 在所有项目上使用相同的 .NET Core 版本 (2.0)。

我们是否始终需要创建 IDesignTimeDbContextFactory,还是仅在某些情况下才需要?

谢谢!

最佳答案

好了,开始了: 如果您的 DbContext 中有默认构造函数或正在使用在 ASP.NET Core 2.0 项目模板中建立的 Program.BuildWebHost() 模式,您通常不需要 IDesignTimeDbContextFactory 实现。

在 2.0.0-preview1 中,未使用 Program.BuildWebHost(),您需要一个设计时工厂。

完整讨论请参阅此主题: https://github.com/aspnet/EntityFrameworkCore/issues/9033

关于c# - IDesignTimeDbContextFactory 并不总是需要的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46202845/

相关文章:

c# - 如何对 CheckedListBox 进行排序

c# - 如何从通过 API 返回的 Task<IActionResult> 获取值进行单元测试

wcf - 使用 WCF 服务的 .NET Core 应用程序中的内容问题

asp.net - 两种类型的 asp.net 核心 Web 应用程序?

c# - 如何将所有资源包含到一个 html 文件中?

javascript - 将用户的十进制输入与c#十进制金额进行比较

C#,DataTable 到 ArrayList?

asp.net - 如何添加对 ASP.NET Core 1.0 MVC 项目的项目引用

asp.net-core-mvc - 使 MVC 6 项目保持最新

asp.net-core - 使用 ASP .NET Core 呈现 .rdlc 报告