【发布时间】:2015-06-16 20:16:19
【问题描述】:
我有一个带有实体框架的 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("..");
}
}
将值返回给 refID 的调用使用 Entity Framework 命中数据库。构造函数是否在 HTTP 请求期间运行,从而将我缓存的 EF 容器用于当前请求,还是会以越界方式发生?我不确定验证器何时被初始化...
【问题讨论】:
标签: c# .net entity-framework fluentvalidation