【发布时间】:2018-06-08 05:43:12
【问题描述】:
在运行dotnet ef database drop 时出现错误。如何调试此命令以获取有关问题的更多详细信息?或者我怎样才能找到这个错误的根源?
System.ObjectDisposedException:无法访问已处置的对象。此错误的一个常见原因是释放从依赖注入中解析的上下文,然后尝试在应用程序的其他地方使用相同的上下文实例。如果您在上下文上调用 Dispose() 或将上下文包装在 using 语句中,则可能会发生这种情况。如果你使用依赖注入,你应该让依赖注入容器负责处理上下文实例。 对象名称:“ApplicationDbContext”。 北 Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider() 北 Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure.get_Instance() 北 Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure
1 accessor) bei Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func1 工厂) 北 Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType) 北 Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.DropDatabase(String contextType) bei Microsoft.EntityFrameworkCore.Design.OperationExecutor.DropDatabaseImpl(String contextType) 北 Microsoft.EntityFrameworkCore.Design.OperationExecutor.DropDatabase.c__DisplayClass0_1.<.ctor>b__0() bei Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action 动作) 无法访问已处置的对象。此错误的一个常见原因是释放从依赖注入中解析的上下文,然后尝试在应用程序的其他地方使用相同的上下文实例。如果您在上下文上调用 Dispose() 或将上下文包装在 using 语句中,则可能会发生这种情况。如果你使用依赖注入,你应该让依赖注入容器负责处理上下文实例。 对象名称:“ApplicationDbContext”。
【问题讨论】:
-
DbContext是如何初始化的?您是针对 ASP.NET Core 项目还是类库进行迁移?如果是 ASP.NET Core,请发布您的Startup课程。如果是类库,请发布您的IDesignTimeDbContextFactory实现。 -
我的主要问题是:我可以在调试器中以某种方式运行
dotnet ef ...吗?
标签: c# asp.net-core entity-framework-core