0

我有以下代码,它为我提供了新 ASP.NET MVC5 标识中的 id 和名称列表:

        var identityStore = new IdentityStore();
        var users =
          (
              from user in identityStore.DbContext.Set<User>()
              select new
              {
                  id = user.Id,
                  name = user.UserName
              }
          );

我该如何修改它以便它允许我检查用户名是否存在?

这是用户类:

public class User : IUser
{
    public User();
    public User(string userName);

    [Key]
    public string Id { get; set; }
    public virtual ICollection<UserLogin> Logins { get; set; }
    public virtual UserManagement Management { get; set; }
    public virtual ICollection<UserRole> Roles { get; set; }
    public string UserName { get; set; }
}
4

2 回答 2

1
if(identityStore.DbContext.Set<User>().Any(u => UserName == "yourUserName"))
{
    // user exists
}
else
{
    // user does not exist
}

它符合您的要求吗?你的问题有点不清楚。

于 2013-10-26T09:49:15.080 回答
1

如果这是您想要的,您可以使用 where 语句查询用户名,例如

var users = from user in identityStore.DbContext.Set<User>()
            where user.UserName != null && !user.UserName.Equals(string.Empty)
            select ...

无论如何,它可能与此答案LINQ 语法的重复,其中字符串值不为 null 或为空

string.IsNullOrEmpty 只在某些情况下有效,所以要小心!

或者,如果您只是查找特定的用户名,只需查询即可

var users = from user in identityStore.DbContext.Set<User>()
            where user.UserName.Equals("whatever")
            select ...
于 2013-10-26T09:50:20.100 回答