Blazor 的 IDbContextFactory:何时使用 CreateDbContextAsync 异步版本与 CreateDbContext
IDbContextFactory for Blazor: when to use CreateDbContextAsync the async version vs CreateDbContext
我在处理 Blazor 服务器项目时开始使用 IDbContextFactory.CreateDbContext
。我知道这个接口是为 Blazor 创建的,用于解决有状态 Blazor 服务器应用程序中的 DbContext 并发问题。
到目前为止我一直在做
using var context = _contextFactory.CreateDbContext();
//Then use the context...
但我刚刚发现该方法有一个异步版本,IDbContextFactory.CreateDbContextAsync
文档只是说“在异步上下文中创建一个新的 DbContext 实例”。
所以我的问题是我应该更喜欢一个版本而不是另一个版本?上下文创建是保证异步操作的 expensive/potentially 阻塞操作吗?
它目前没有实际用途。 DbContext 初始化不执行任何 IO 或网络访问,并且您可能执行的扩展点(OnConfiguring 上的 DbContext 构造函数)本身不是异步的。
In retrospect, it's possible we should not have added this
我在处理 Blazor 服务器项目时开始使用 IDbContextFactory.CreateDbContext
。我知道这个接口是为 Blazor 创建的,用于解决有状态 Blazor 服务器应用程序中的 DbContext 并发问题。
到目前为止我一直在做
using var context = _contextFactory.CreateDbContext();
//Then use the context...
但我刚刚发现该方法有一个异步版本,IDbContextFactory.CreateDbContextAsync
文档只是说“在异步上下文中创建一个新的 DbContext 实例”。
所以我的问题是我应该更喜欢一个版本而不是另一个版本?上下文创建是保证异步操作的 expensive/potentially 阻塞操作吗?
它目前没有实际用途。 DbContext 初始化不执行任何 IO 或网络访问,并且您可能执行的扩展点(OnConfiguring 上的 DbContext 构造函数)本身不是异步的。
In retrospect, it's possible we should not have added this