Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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# 如何检查我的数据库中是否已存在值并在ASP.NET和Entity Framework中显示验证消息_C#_Asp.net_Entity Framework 6 - Fatal编程技术网

C# 如何检查我的数据库中是否已存在值并在ASP.NET和Entity Framework中显示验证消息

C# 如何检查我的数据库中是否已存在值并在ASP.NET和Entity Framework中显示验证消息,c#,asp.net,entity-framework-6,C#,Asp.net,Entity Framework 6,我正在这样做。我想检查用户名是否已插入数据库 Mst_Users obj = new Mst_Users(); obj.UserName = txtUserName.Text; obj.ContactNo = txt_ContactNo.Text.Trim(); obj.Address = txt_Address.Text; obj.CreatedBy = LoginHandler.UserData.UserId; obj.CreatedOn = DateTime.Now; obj.IsAct

我正在这样做。我想检查用户名是否已插入数据库

Mst_Users obj = new Mst_Users();
obj.UserName = txtUserName.Text;

obj.ContactNo = txt_ContactNo.Text.Trim();
obj.Address = txt_Address.Text;
obj.CreatedBy = LoginHandler.UserData.UserId;
obj.CreatedOn = DateTime.Now;
obj.IsActive = true;
obj.PasswordHash = Password;
obj.RoleId = Convert.ToInt32(chkRoles.SelectedValue);
obj.OtherDetails = txt_OtherDetails.Text;
objEntity.Mst_Users.Add(obj);

int result = objEntity.SaveChanges();

if (result > 0)
{
    MessageBox("Record Added Succesfully");
    txtUserName.Text = string.Empty;
    txt_ContactNo.Text = string.Empty;
    txt_Address.Text = string.Empty;
    txt_OtherDetails.Text = string.Empty;
    chkRoles.ClearSelection();
}

首先,您需要检查是否存在具有此用户名的用户,在使用任何添加/保存代码之前,您需要执行此操作

通常是这样做的

var user = yourDbContext.Where(u=>u.UserName == "UserNameYouWantToCheck").FirstOrDefault();

if(user!=null)
    throw new ArgumentException(); //or do whatever you want to do when an user like this exists

//code for adding your user to the application db context and for saving the data.
至于需要依赖的验证方法,若您正在进行MvC项目,那个么您可以使用ModelState,您可以检查模型是否有效并从中访问验证消息。但如果您正在做一些其他项目,您刚刚从github添加了EF,那么您可以使用Validator,下面是一个示例:

public static bool IsValid(object model)
        {
            var context = new ValidationContext(model, null, null);
            var results = new List<ValidationResult>();

            if (Validator.TryValidateObject(model, context, results, true))
            {
                return true;
            }

            return false;
        }
然后,您只需将要作为参数检查的模型类型对象传递给此IsValid方法,就可以在结果列表中检查验证消息


普罗蒂普。在开始学习EF之前,请阅读有关linq的内容

您知道如何使用Where和Select,或者至少知道如何使用包含查询字符串的EF METHORY EXECUTESQLCOMAND吗?您不必事先检查,因为这不是原子性的。如果无法插入新用户,则对用户名进行唯一约束并捕获异常。