c# - WPF 中作用域 EF Core DbContext 的生命周期

标签 c# wpf .net-core dependency-injection entity-framework-core

我想在 .NET Core 3.1 WPF 应用程序中将 EF Core 与 .NET Core 依赖项注入(inject)结合使用。

在 ASP.NET 中,作用域 DbContext 的生命周期将是一个 HTTP 请求,但在 WPF 中,它将是整个应用程序的生命周期,这是不建议的。

那么如何管理 WPF .NET Core 应用程序中 DbContext 的生命周期?

最佳答案

我建议这样定义它:

services.AddDbContext<AppDbContext>(options => options
        .UseSqlServer(configuration.GetConnectionString("LocalDB")), ServiceLifetime.Transient, ServiceLifetime.Transient);

这样每个模型都有自己的 DbContext。

另一个解决方案是声明 Singleton DbContextFactory 并调用其 Create 方法来每次使用时创建新的 DbContext。

关于c# - WPF 中作用域 EF Core DbContext 的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61957461/

相关文章:

c# - 后台服务不工作 Xamarin.Android

c# - 使用正则表达式获取指数值

c# - 如何通过设置窗口实时控制程序的不透明度?

c# - 从 .Net Core 控制台应用程序更新 Firebase Firestore 中的文档

azure - ping 类在已发布的网络核心 Web 应用程序中不起作用

c# - HttpContext.Current.Request.Cookies 在重新加载后不加载值

c# - 无法将 SignalR IHubContext 注入(inject)类

wpf - 从 WPF 浏览器应用程序中删除导航栏

慢打字机的 WPF ComboBox

c# - Entity Framework Core 2 没有急切加载包含的实体