我已經在這個問題上進行了一些探索,並且在從數據庫生成時遇到了一些關於AspNetUserRoles不在EDMX設計器中的問題。然而,它在ModelBrowser中,我不能讓這個表顯示,所以我可以使用角色授權。當從數據庫生成時,AspNetUserRoles不在EDMX中
當我在我的角色類打這個方法
public override string[] GetRolesForUser(string username)
{
DTE = new DatabaseTestingEntities();
string userID = DTE.AspNetUsers.Where(w => w.Email == username).Select(s => s.Id).FirstOrDefault();
string roleID = DTE.AspNetUsers.Include("AspNetRoles").Where(s => s.Id == userID).FirstOrDefault().ToString();//.AspNetUserRoles.Where(w => w.UserId == userID).Select(s => s.RoleId).FirstOrDefault();
string roleName = DTE.AspNetRoles.Where(w => w.Id == roleID).Select(s => s.Name).FirstOrDefault();
string[] results = { roleName };
return results;
}
結果總會回來的空..
然而,它應該是這樣的,而不是
public override string[] GetRolesForUser(string username)
{
DTE = new DatabaseTestingEntities();
string userID = DTE.AspNetUsers.Where(w => w.Email == username).Select(s => s.Id).FirstOrDefault();
string roleID = DTE.AspNetUserRoles.Where(w => w.UserId == userID).Select(s => s.RoleId).FirstOrDefault();
string roleName = DTE.AspNetRoles.Where(w => w.Id == roleID).Select(s => s.Name).FirstOrDefault();
string[] results = { roleName };
return results;
}
但這種方式拋出一個錯誤,因爲當我從數據庫生成EF時,AspNetUserRoles不在EDMX設計器中。
我怎樣才能讓這張桌子出現,以便我可以繼續我需要做的事情?
我試過更新EDMX,那也不管用。