FluentValidation unique name validation using database

Predicate Validator (aka Must) has an overload, which accepts predicate with two parameters (validated object and property value). In your case predicate will have type Func<Category, string, bool>. So just add Category parameter to your unique name validation method:

private bool UniqueName(Category category, string name)
{
        ProjecteDataContext _db = new ProjecteDataContext();
        var dbCategory = _db.Categories
                            .Where(x => x.Name.ToLower() == name.ToLower())
                            .SingleOrDefault();

        if (dbCategory == null) 
            return true;

        return dbCategory.ID == category.ID;
}

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)