1 回答

TA貢獻1860條經(jīng)驗 獲得超9個贊
聯(lián)結表未包含在 Entity Framework 中,因為它沒有主鍵。您通過向聯(lián)結表添加主鍵然后更新您的 Edmx 文件來解決此問題。
更新模型后,您可以使用簡單的 linq 查詢從聯(lián)結表中檢索數(shù)據(jù)。
兩種情況的區(qū)別:
1) 如果您的聯(lián)結表不包含主鍵,EF 將生成具有多對多關系的兩個類
2) 如果您的聯(lián)結表包含主鍵,EF 將生成 3 個類: Junction table in one to many relation with用戶和具有 user_role 的一對多
更新
請試試這個:
public override string[] GetRolesForUser(string username)
{
//get all user data from user table for id based on user email
int _user_id = Convert.ToInt32(db.users.Where(u => u.user_email == username).Select(i => i.user_id).FirstOrDefault());
// Get role from user_has_role against user id
var _role = db.user_has_role.Where(r => r.user_id == _user_id).Select(r => r.user_role.user_role_name);
// store selected
string[] roleName = _role.ToArray();
if (roleName != null)
{
return roleName;
}
else
{
roleName = null;
return roleName;
}
}
- 1 回答
- 0 關注
- 111 瀏覽
添加回答
舉報