مخزن جامع کدها و الگوهای توسعه

اسنیپت‌ها، ترفندها و کدهای کاربردی

مجموعه‌ای منتخب از ساختارهای کد، پیکربندی‌های بهینه، پیش‌نیازها و کدهای همراه برای زبان‌ها و فریم‌ورک‌های مختلف.

۱ کد انتخاب شده
دسته‌بندی: انتیتی فریم‌ورک (EF Core) Fluent Validation
پاکسازی همه فیلترها
انتیتی فریم‌ورک (EF Core) CSHARP 1405/07/08

Fluent Validation

FluentValidation یک کتابخانه برای اعتبارسنجی مدل‌هاست؛ یعنی به‌جای اینکه همه Validationها را با Data Annotation داخل کلاس بنویسی، قوانین را در یک کلاس جدا تعریف می‌کنی.

پیش‌نیازها و وابستگی‌ها (Dependencies)
inheritance => AbstractValidator<>
csharp
// به جای کد زیر
public class ProductCreateViewModel
{
    [Required]
    [StringLength(100)]
    public string Name { get; set; } = null!;

    [Range(0, 1000000000)]
    public decimal Price { get; set; }
}

// به این صورت مینویسیم
public class ProductCreateViewModelValidator
    : AbstractValidator<ProductCreateViewModel>
{
    public ProductCreateViewModelValidator()
    {
        RuleFor(x => x.Name)
            .NotEmpty()
            .WithMessage("نام محصول الزامی است.")
            .MaximumLength(100)
            .WithMessage("نام محصول نباید بیشتر از 100 کاراکتر باشد.");

        RuleFor(x => x.Price)
            .GreaterThanOrEqualTo(0)
            .WithMessage("قیمت نمی‌تواند منفی باشد.");
    }
}