Свободный валидатор для проверки наличия объекта с идентификатором в базе данных.C#

Место общения программистов C#
Ответить
Anonymous
 Свободный валидатор для проверки наличия объекта с идентификатором в базе данных.

Сообщение Anonymous »

Я пытаюсь написать собственный валидатор, который будет проверять, существует ли объект в базе данных, используя OrmLite. Проблема в том, что аргументы типа для IRuleBuilder больше не могут быть выведены из использования.

Мне нужно написать вызов метода следующим образом:

RuleFor(r => r.Id).Exists()


Но я хочу написать так:

Rulefor(r => r.Id).Exists()


Это происходит потому, что IRuleBuilder имеет два параметра типа, а метод является методом расширения. Есть ли разумный и свободный способ спроектировать это и сделать вызов функции предпочтительно таким же, как во второй версии?

Вот код для моего метода расширения и моего валидатора:

public static class AbstractValidatorExtensions
{
public static IRuleBuilderOptions Exists(this IRuleBuilder ruleBuilder)
{
return ruleBuilder.SetValidator(new EntityExistsValidator());
}
}

public class EntityExistsValidator : PropertyValidator
{
public EntityExistsValidator() : base("Entity does not exist") {}

protected override bool IsValid(PropertyValidatorContext context)
{
return HostContext.Resolve()
.Exists((int)context.PropertyValue);
}
}


Подробнее здесь: https://stackoverflow.com/questions/546 ... n-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»