我正在使用MVC5进行分配,我正在尝试使用Linq创建一个查询,该查询将从“AspNetUsers”表返回登录用户“StudentId”。我必须尝试的代码是,
string currentUser = User.Identity.GetUserId();
string getStudentId = (from a in db.Users
where a.Id.Equals(currentUser)
select a.StudentId).ToString();
这是将字符串值设置为“StudentId;”这是列的名称。 (该ID是默认的AspNetUsers表数据类型,它是nvarchar(128))。我非常感谢您对我出错的任何帮助。
答案 0 :(得分:2)
您需要先执行查询:
string getStudentId = (from a in db.Users
where a.Id.Equals(currentUser)
select a.StudentId).First().ToString();
答案 1 :(得分:0)
一种解决方案可能
string currentUser = User.Identity.GetUserId();
string studentId;
studentId=db.Users.SingleOrDefault(o=>o.Id==currentUser).Select(o=>o.StudentId.ToString());
答案 2 :(得分:0)
我尝试了您的代码,但下面稍作修改: (我用您的UserName列替换了您的StudentId列,并且Viewbag在视图页面上显示了正确的UserName)
string currentUser = User.Identity.GetUserId();
var getStudentId = (from a in db.Users
where a.Id.Equals(currentUser)
select a.UserName).FirstOrDefault().ToString();
ViewBag.TestUser = getStudentId;
[更新]
我假设您的StudentId列在您的Users表中。