Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FluentValidation和实体框架查找_C#_.net_Entity Framework_Fluentvalidation - Fatal编程技术网

C# FluentValidation和实体框架查找

C# FluentValidation和实体框架查找,c#,.net,entity-framework,fluentvalidation,C#,.net,Entity Framework,Fluentvalidation,我有一个带有实体框架的ASP.NET MVC应用程序。该应用程序将DbContext的作用域限定为当前HTTP请求,但也考虑带外请求,为每个请求返回一个新的DbContext。我注册了默认的Fluent验证提供程序,如下所示: FluentValidationModelValidatorProvider.Configure(); 在构造函数中,我对实体框架有一些依赖性: public class SomeValidator : AbstractValidator<Customer>

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

FluentValidationModelValidatorProvider.Configure();
在构造函数中,我对实体框架有一些依赖性:

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("..");
   }
}
公共类SomeValidator:AbstractValidator
{
公共验证程序()
{
private _refService=//通过DI容器获取IReferenceDataService
Dim refID=\u refService.GetID(要为其查找ID的值的详细信息);
规则((m)=>m.Field)。必须((o,v)=>
{
如果(v==reID)
返回false;
其他的
...
}).带有信息(“…”);
}
}

调用refID返回一个值将使用实体框架访问数据库。构造函数是否在HTTP请求期间运行,从而对当前请求使用缓存的EF容器,还是会以越界方式发生?我不确定验证器何时被初始化…

一般来说,验证器将被延迟构造(即您第一次需要它时),然后将保留在您的DI容器中供将来使用。因此,它的作用域不会局限于http请求