这是我的疑问:
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因此不是问题)。
答案 0 :(得分:-1)
如果集合为空,您可以使用SingleOrDefault
通常返回null
,但如果TSource
将其他内容定义为默认值,它也可以返回其他内容,因此请谨慎使用。
var user = (from d in db.Users
where user.UserName == d.UserName && user.Password == d.Password
select d).SingleOrDefault();