mvc5中的c#Linq查询返回列名而不是值

时间:2016-12-15 21:20:39

标签: c# linq asp.net-mvc-5

我正在使用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))。我非常感谢您对我出错的任何帮助。

3 个答案:

答案 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表中。