2017-03-03 58 views
1

我是新來的asp.net,我試圖建立我的第一個網站。我正在實施存儲庫,我需要如何通過id找到用戶。這是我的存儲庫類的用戶:獲取用戶由Id asp.net mvc

public class UserRepository 
{ 

    private ApplicationDbContext _db; 

    public UserRepository() 
    { 
     _db = new ApplicationDbContext(); 
    } 

    public ApplicationUser GetUserById(int id) 
    { 
     return _db.Users.FirstOrDefault(ApplicationUser => ApplicationUser.Id == id); 
    } 
} 
+1

你得到任何錯誤? – Usman

+0

您發佈的代碼似乎沒有任何問題。然而,Identity中的默認值是IdentityUser將有一個*字符串* PK,所以除非您已經使用泛型類將鍵設爲int,否則這可能是您的問題。也就是說,不要像這樣創建存儲庫。你只是在腳下拍攝自己。請參閱:http://cpratt.co/repository-and-unit-of-work-patterns-with-entity-framework/ –

回答

1

您可以使用.Find(id)使用其主鍵檢索實體。

public ApplicationUser GetUserById(int id) 
{ 
    return _db.Users.Find(id); 
} 
1

[假設你的解決方案使用微軟的身份,和用戶登錄]

ApplicationDbContext mycontext = new ApplicationDbContext(); 
UserStore<ApplicationUser> mystore = new UserStore<ApplicationUser>(mycontext); 
ApplicationUserManager userMgr = new ApplicationUserManager(mystore); 
var _user = userMgr.FindByNameAsync(User.Identity.Name); 

然後你就可以輕鬆地獲得訪問用戶對象及其所有屬性