无法将类型“System.Linq.IQueryable”
本文关键字:AuthenticationApp Models User IQueryable Linq 类型 System | 更新日期: 2023-09-27 18:18:22
我的linq是这样的:
User us = from s in entities.Users
where s.Username.Equals(username)
select s;
知道为什么我会收到上述错误吗?
使用 FirstOrDefault
:-
User us = (from s in entities.Users
where s.Username.Equals(username)
select s).FirstOrDefault();
您的查询返回多个结果,但您尝试将其存储在只能容纳一个对象的AuthenticationApp.Models.User
中,从而导致转换错误。
或者更好:-
User us = entities.Users.FirstOrDefault(x => x.Username.Equals(username));
更新:
如果您确定它只会返回 1 个对象,您也可以使用 SingleOrDefault
。在此处检查两者之间的差异。
您收到错误,因为投影返回IEnumerable
( IQueryable
(。要按名称获取User
,您可以使用以下内容:
try
{
var user = entities.Users.SingleOrDefault(u => u.Username.Equals(username));
}
catch
{
// handle the case when there are more than
// one user with given name in DB
}