2015-06-16 5 views
1

У меня есть приложение ASP.NET MVC с Entity Framework. Это приложение привязывает DbContext к текущему HTTP-запросу, но также учитывает внеполосные запросы, возвращая новый DbContext для каждого запроса. У меня есть свободный поставщик проверки по умолчанию зарегистрирован как:Поиск в FluentValidation и Entity Framework

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 для текущего запроса, или это произойдет из-за границы? Я не уверен, когда валидатор получает инициализацию ...

ответ

1

Вообще говоря, валидатор будет построен лениво (т. Е. В первый раз, когда он вам нужен), а затем останется в вашем контейнере DI для будущего использования. Таким образом, он не будет привязан к HTTP-запросу.

Смежные вопросы