2013-10-26 84 views
0

我有下面的代碼,讓我從新ASP.NET MVC5身份標識和名稱的列表列表中的存在價值:我如何檢查是否使用C#

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

我怎麼可能修改這樣它可以讓我檢查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; } 
} 
+1

已存在哪裏?你能否加一些含糊不清的解釋? – IamStalker

+0

你是否在尋找'var isUserExist = identityStore.DbContext.Set ().Any(user => user.UserName ==「Samantha」)''? –

回答

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

它是否適合你的要求是什麼?你的問題有點不清楚。

+0

是的,我認爲這是完美的。我現在會嘗試。 –

+0

小修正,應該是Any(u => u.UserName ==「yourUserName」) – srsyogesh

1

如果這是您想要的,您可以使用where語句查詢用戶名,例如,

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

不管怎麼說,這是這個答案LINQ syntax where string value is not null or empty

string.IsNullOrEmpty確實只在某些情況下工作,所以要小心可能重複的!

或者,如果你只是尋找特定的用戶名,只需查詢它

var users = from user in identityStore.DbContext.Set<User>() 
      where user.UserName.Equals("whatever") 
      select ...