Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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# ValidationAttribute以检查唯一性_C#_Asp.net Mvc - Fatal编程技术网

C# ValidationAttribute以检查唯一性

C# ValidationAttribute以检查唯一性,c#,asp.net-mvc,C#,Asp.net Mvc,使用此代码,我检查用户名是否有效: public class UniqueUsernameAttribute : ValidationAttribute { public override bool IsValid(object value) { IRepository<User> userRepository = new EFRepository<User>(); User user = userRepository.G

使用此代码,我检查用户名是否有效:

public class UniqueUsernameAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        IRepository<User> userRepository = new EFRepository<User>();

        User user = userRepository.GetAll().FirstOrDefault(x => x.Name.Equals((string) value));

        return user == null;
    }
}
公共类UniqueUserName属性:ValidationAttribute
{
公共覆盖布尔值有效(对象值)
{
IRepository userRepository=新eRepository();
User User=userRepository.GetAll().FirstOrDefault(x=>x.Name.Equals((字符串)值));
返回user==null;
}
}
这在添加新用户时效果很好。但是在编辑用户时,数据库中已经存在一个现有的用户,因此该代码不再工作(我检查是否有0个条目,而1个条目已经存在)。有没有办法添加一个额外的参数或什么


谢谢

您可以试试这篇CodeProject文章的建议:

覆盖另一个IsValid将为您提供包含额外数据的选项,包括您是否真的在寻找新的非重复用户,或者您是否在寻找现有用户

using System.ComponentModel.DataAnnotations;

public class testattribute : ValidationAttribute    
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        return base.IsValid(value, validationContext);
    }
}