【问题标题】:Is dbContext (retrieved from ValidationContext.GetService in Blazor Server Side app) thread safe?dbContext(从 Blazor 服务器端应用程序中的 ValidationContext.GetService 检索)线程安全吗?
【发布时间】:2022-12-13 10:35:18
【问题描述】:

dbContext(从 Blazor 服务器端应用程序中的 ValidationContext.GetService 检索)线程安全吗?

public class SomeAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext) {
        ...
        using var dbContext = (AppDbContext)validationContext.GetService(typeof(AppDbContext));
        ...
    }
}

【问题讨论】:

    标签: c# thread-safety blazor-server-side validationattribute


    【解决方案1】:

    我不相信有任何线程安全的 dbContext 实例化。如果你需要异步,你应该实例化另一个。
    在这里,您已将它注入到一个属性中,所以您可能会问每次它被击中时它是否会是一个新属性?如果是这样,那么是的,除非你以一种不是的方式注入它。
    就像您使用的是 Services.AddDbContext 或 Services.AddDbContextFactory 一样,它将是新的,因此异步命中的属性会很好,因为每个属性都有一个新的上下文。

    见:https://learn.microsoft.com/en-us/ef/core/dbcontext-configuration/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-18
      • 2021-10-21
      • 2014-05-01
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多