查询与UserId错误的多对多关系 - MVC 4

时间:2016-07-25 09:45:59

标签: asp.net asp.net-mvc asp.net-mvc-4

所以我在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();

有人能帮助我吗?感谢

1 个答案:

答案 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);
}