我有一个带有依赖项注入的wpf应用程序。我将上下文注册为可在以下应用程序中使用的服务。
serviceCollection.AddDbContext<Context>(p => p.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));
我有另一个服务,应该每隔15秒从数据库中获取数据,以检查是否添加了新实体,并使用事件服务进行操作,并在MainWindow.xaml启动时启动该服务,然后转到另一个线程。] >
private void Window_Loaded(object sender, RoutedEventArgs e) { Task newOrdersTask = _eventService.SubscribeToNewOrders(); }
但是有时在使用应用程序时会出现此错误。
在上一个操作完成之前在此上下文上开始第二个操作
我如何处理这些情况?
我有一个带有依赖项注入的wpf应用程序。我将上下文注册为可在以下应用程序中使用的服务。 serviceCollection.AddDbContext
将ServiceLifetime.Transient
添加为AddDbContext
的第二个参数将强制每次由容器注入时创建一个新的DbContext。但是,通过这样做,您将错过EF Core DbContext默认提供的许多功能。您应该考虑实现“ ambient context pattern”以某种方式保留这些功能。