如何从查询中获取变量?

时间:2014-05-14 03:31:12

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

这是我的疑问:

       var query = from d in db.Users
                    where user.UserName == d.UserName && user.Password == d.Password
                    select d;

现在我知道查询将为null(如果用户凭据不匹配)或仅返回一个用户。我现在的问题是我想访问那个用户的变量。怎么办?我尝试过使用这行代码:

        foreach (var item in query)
        {
            Session["id"] = item.ID;
            Session["name"] = item.UserName;
            Session["type"] = item.Type;
        }

但它导致我的程序崩溃(我知道查询不是null因此不是问题)。

1 个答案:

答案 0 :(得分:-1)

如果集合为空,您可以使用SingleOrDefault通常返回null,但如果TSource将其他内容定义为默认值,它也可以返回其他内容,因此请谨慎使用。

var user = (from d in db.Users
            where user.UserName == d.UserName && user.Password == d.Password
            select d).SingleOrDefault();