【发布时间】:2022-11-05 22:45:00
【问题描述】:
我有一个 MVC 应用程序,在其中一个视图上,我有一个非常复杂的 Blazor 日历组件,其中列出了所有帐户(工人和雇主)及其可用性/空缺。
该日历上发生了许多读取/保存/更新数据库操作,我目前没有重用 MVC 服务,但我创建了一个新的 dbContext 并为 Blazor 日历提供了单独的服务。这是因为我不能使用 MVC 依赖容器,因为 signalR 会讨厌它。
现在,我已经阅读了有关 IServiceScopeFactory 的信息,我想知道是否可以通过创建一个新范围并将 Blazor Calendar 中执行某些 DB 操作的每个方法包装在以下位置来重用 MVC 服务:
using (IServiceScope scope = scopeFactory.CreateScope())
{
}
并重用 MVC 服务。
这有缺点吗?我可能不得不在每个方法上调用上面的代码,但是这样我也可以调用我的 MVC 服务,这些服务已经拥有实体的所有创建/更新方法。这行得通吗?有我不应该这样做的理由吗?
【问题讨论】: