我已将SqlRoleProvider表aspnet_Users,aspnet_Roles和aspnet_UsersInRoles添加到VS 2008中的Entity Framework 1.0模型中。
我尝试了以下智能感知甚至无法帮助我的事情。
private void BindFormView(string userName)
{
using (var context = new MyEntities())
{
var users = from u in context.aspnet_Users
where u.UserName = userName
select u;
}
//...
}
我最终的目标是获得给定用户拥有的所有角色。它在我的模型中看起来都很正确,但我似乎无法有效地访问它。
答案 0 :(得分:2)
Dude,不映射会员资格表。
通过Membership Provider API访问它们:
Membership.GetUser("blah");
为什么不映射它?
会员资格API包含您需要的所有信息。
要获取用户的角色,请使用 RoleProvider.GetRolesForUser
答案 1 :(得分:1)
看起来角色被设置为来自用户的导航属性。因此,基于您的代码,您应该能够做到这样的事情:
private void BindFormView(string userName)
{
using (var context = new MyEntities())
{
//Get the first user matching your query
var user = (from u in context.aspnet_Users
where u.UserName == userName
select u).FirstOrDefault();
//Using the navigation properties, get the roles associated with this user
var roles = user.aspnet_Roles().ToList();
}
//...
}