首页 > 技术文章 > 添加用户判断用户名是否存在

yechangzhong-826217795 2016-09-06 09:56 原文

在项目中,我们添加一个账户,用户名或者登录名等可能要求不能重复,方法如下:

参考项目中的这个写法:

 /// <summary>
        /// 账户不能重复
        /// </summary>
        /// <param name="account">账户值</param>
        /// <param name="keyValue">主键</param>
        /// <returns></returns>
        public bool ExistAccount(string account, string keyValue)
        {
            var expression = LinqExtensions.True<UserEntity>();
            expression = expression.And(t => t.Account == account);
            if (!string.IsNullOrEmpty(keyValue))
            {
                expression = expression.And(t => t.UserId != keyValue);
            }
            return this.BaseRepository().IQueryable(expression).Count() == 0 ? true : false;
        }

修改用EF写法:

/// <summary>
        /// 账户不能重复
        /// </summary>
        /// <param name="account">账户值</param>
        /// <param name="keyValue">主键</param>
        /// <returns></returns>
        public bool ExistAccount(string account, string keyValue = "")
        {
            var data=db.Sys_User.Where(t => t.Account == account);
            if (!string.IsNullOrEmpty(keyValue))
            {
                data = data.Where(t => t.UserId != keyValue);
            }
            return data.Count() == 0 ? true : false;
        }

 传递keyValue,用于排除自我,这种情况用在登录用户等会后去修改自己的用户名,在修改过程中,用户突然改变想法还是用老的用户名,这时候如果不排除自我,会显示用户名已经存在,所以加了一个

   if (!string.IsNullOrEmpty(keyValue))
            {
                data = data.Where(t => t.UserId != keyValue);
            }

这个方法!

推荐阅读