var j = from c in User.USERs
where (c.USER_NAME.Equals(tempUserName))
select c;
这一直给我一个空序列
两者都只是将用户输入与数据库进行比较的字符串
var j = from c in User.USERs
where (c.USER_NAME.Equals(tempUserName))
select c;
这一直给我一个空序列
两者都只是将用户输入与数据库进行比较的字符串
做这样的事情:
var j = User.USERs.First(c => c.USER_NAME == tempUserName)
或者
var j = User.USERs.Single(c => c.USER_NAME == tempUserName)
或者只是从您自己的查询给您的结果中取 j[0] 。
PS - 如果没有与查询匹配的项目,First 或 Single 都会抛出异常,如果您想在没有找到任何内容的情况下返回 null,请分别使用 FirstOrDefault 和 SingleOrDefault。
要拓宽范围,请尝试以下操作:
string userToSearchFor = tempUserName.Trim().ToLower();
var j = User.USERs.FirstOrDefault(c => c.USER_NAME.ToLower() == userToSearchFor);
if (j != null)
{
//found something
}
如果它返回一个空序列,那么您的 where 子句评估为 false,如果您需要先解决该问题,请检查它生成的 SQL。
要回答您的问题,以获得您通常使用的单个元素
我会这样做:
var result = User.USERs.SingleOrDefault(x => x.USER_NAME.Equals(tempUserName));
if (result != null)
{
//do your thing
}