所以我在simplemembership创建的UserProfile表和我创建的Enrollment表之间创建了多对多关系。
UserProfile - > User_Enrollment< - Enrollment
我正在尝试查询登录用户的注册情况,我有以下代码:
public ActionResult ListarUCs()
{
var id = Membership.GetUser().ProviderUserKey;
var ucs = db.Enrollments.Where(x => x.Users.Any(r => id.Equals(r.UserId)));
return View(ucs.ToList());
}
将“用户”作为“注册”模型中的“用户配置文件列表”的名称。 但它给出了一个错误:
无法创建System.object类型的常量值。只要 在此上下文中支持原始类型或枚举类型
已经尝试过这种方式:
var userId = User.Identity.GetUserId();
然后查询,但它无法识别User.Identity.GetUserId();
有人能帮助我吗?感谢
答案 0 :(得分:0)
尝试从db获取当前用户,然后直接查询关系,这或多或少是这样的......
public ActionResult ListarUCs() {
aspnet_Users userInSession = db.aspnet_Users.SingleOrDefault(u => u.UserName.ToLower() == User.Identity.Name.ToLower());
IEnumerable<Enrollments> ucs = userInSession.User_Enrollment.SelectMany(e => e.Enrollment);
return View(ucs);
}