Entity Framework Core 错误:“在上一个操作完成之前,在此上下文上启动了第二个操作”
在 Entity Framework Core 中使用时在 ASP.Net Core 2.0 应用程序中,您可能会遇到“InvalidOperationException”,指出在上一个操作之前在上下文上启动了第二个操作已完成。
原因和解决方案:
此错误的根本原因是 Entity Framework Core 的上下文实现不是线程安全的。要解决此问题,请确保在依赖项注入配置中将 DbContext 注册为 Transient:
services.AddDbContext<MyContext>(ServiceLifetime.Transient);
或者,您可以直接将上下文注册为 Transient:
services.AddTransient<MyContext>();
避免将上下文注册为范围:
services.AddDbContext<MyContext>();
其他注意事项:
理解瞬态依赖:
将上下文添加为瞬态意味着每次请求上下文时,都会创建一个新实例。这可以防止线程安全问题,但也限制了跨多个类更改实体的能力。
以上是如何修复 Entity Framework Core 的'在上一个操作完成之前在此上下文上启动了第二个操作”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!