如何从查询中获得变量

本文关键字:变量 查询 | 更新日期: 2023-09-27 18:03:18

我的查询:

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

现在我知道一个事实,查询要么为空(如果用户凭证不匹配),要么只返回一个用户。我现在的问题是,我想访问那个用户的变量。怎么做呢?我试过使用这行代码:

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

但是它导致我的程序崩溃(我知道查询不是空的,所以这不是问题)。

如何从查询中获得变量

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

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