1 回答
TA贡献1860条经验 获得超9个赞
联结表未包含在 Entity Framework 中,因为它没有主键。您通过向联结表添加主键然后更新您的 Edmx 文件来解决此问题。
更新模型后,您可以使用简单的 linq 查询从联结表中检索数据。
两种情况的区别:
1) 如果您的联结表不包含主键,EF 将生成具有多对多关系的两个类
2) 如果您的联结表包含主键,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 关注
- 80 浏览
添加回答
举报