Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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_Fluentvalidation - Fatal编程技术网

C# 在FluentValidation中为每个规则准备数据

C# 在FluentValidation中为每个规则准备数据,c#,.net,fluentvalidation,C#,.net,Fluentvalidation,我试图验证包含ID列表的模型。很少有简单的业务规则,比如“它是否存在,类型是否正确”等等。我想为单个项(即Id)创建内部验证器,但为了避免逐个请求db获取每个实体,我正在尝试获取所有实体,并将其放在字典上,稍后我想将字典传递给内部验证器,以通过Id获取具体的实体 RuleForEach(m => m.BunchOfIds) // how to get it? .SetValidator(new InternalValidator(_entities)); 有什么想法吗?我

我试图验证包含ID列表的模型。很少有简单的业务规则,比如“它是否存在,类型是否正确”等等。我想为单个项(即Id)创建内部验证器,但为了避免逐个请求db获取每个实体,我正在尝试获取所有实体,并将其放在字典上,稍后我想将字典传递给内部验证器,以通过Id获取具体的实体

RuleForEach(m => m.BunchOfIds)
    // how to get it?
    .SetValidator(new InternalValidator(_entities));

有什么想法吗?我曾尝试创建CustomAsync,但后来我无法使用“RuleForEach”,但目前它似乎是唯一可能的选项

我也尝试使用“MustAsync”,它总是传递但用正确的数据填充字段,但在执行“MustAsync”之前调用了“SetValidator”,因此数据在那里不可用。您正在讨论FluentValidation的工作方式。您需要特定于您的模型的数据,但验证器对象通常在应用程序中注册为单个对象,在多个模型之间共享。我想避免创建“内部模型”,但似乎我必须这样做,或者准备可以注入验证器的“上下文”