添加用户判断用户名是否存在
在项目中,我们添加一个账户,用户名或者登录名等可能要求不能重复,方法如下:
参考项目中的这个写法:
/// <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);
}
这个方法!