c# - FluentValidation 和 Entity Framework 查找

标签 c# .net entity-framework fluentvalidation

我有一个带有 Entity Framework 的 ASP.NET MVC 应用程序。此应用程序将 DbContext 的范围限定为当前 HTTP 请求,但也考虑了带外请求,为每个请求返回一个新的 DbContext。我注册了默认的 Fluent 验证提供程序,如下所示:

FluentValidationModelValidatorProvider.Configure();

在构造函数中,我对 Entity Framework 有一些依赖:

public class SomeValidator : AbstractValidator<Customer>
{
   public SomeValidator()
   {
     private _refService = //Get IReferenceDataService through DI container
     Dim refID = _refService.GetID(details of value to find ID for);

       RuleFor((m) => m.Field).Must((o, v) =>
            {
                if (v == reID)
                  return false;
                else
                    ...
            }).WithMessage("..");
   }
}

将值返回给 refID 的调用使用 Entity Framework 命中数据库。构造函数是否在 HTTP 请求期间运行,从而将我缓存的 EF 容器用于当前请求,或者这是否会以越界方式发生?我不确定验证器何时初始化...

最佳答案

一般来说,验证器将被惰性构造(即您第一次需要它时),然后将保留在您的 DI 容器中以备将来使用。因此它不会限定在 http 请求范围内。

关于c# - FluentValidation 和 Entity Framework 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30877323/

相关文章:

java - 我如何将这个c#代码翻译成java

.net - 在WPF DataGrid中双击显示RowDetails

c# - ASP.NET WebAPI 2 + Entity Framework 连接缓存最佳实践

c# - HttpWebRequest 到与域解析到的 IP 不同的 IP

c# - 查找类实现的所有接口(interface)

c# - Linq Extension Methods with Entity Framework 初学者错误

c# - 使用 Assert 测试异常以确保它们将被抛出的最佳方法

entity-framework - Entity Framework 在 SaveChanges 之前检查 DbUpdateException

c# - 如何从 ObjectContext 中删除属于 EntityObjects 集合的 EntityObject?

c# - 如何在使用 EF 期间向 C# 中的类添加额外的属性