我试图理解为什么下面的查询失败了
系统。NullReferenceException:对象引用没有设置为对象的实例。
var query = from p in UserProfiles.ToList()
where p.FirstName.ToLower().Contains(lettersToMatch.ToLower()) || p.LastName.ToLower().Contains(lettersToMatch.ToLower())
select new MembershipSummaryDTO
{
EmailAddress = p.EmailAddress,
FullName = string.Format("{0} {1}", p.FirstName, p.LastName),
UserName = p.UserName,
IsApproved = p.IsEnabled,
UserId = p.UserId
};
栈跟踪指向WHERE子句
第133行:p. firstname . tolower ().Contains(lettersToMatch.ToLower()) || p. lastname . tolower ().Contains(lettersToMatch.ToLower())
修复是删除UserProfiles.ToList()上的. tolist(),我想了解为什么这会失败(没有修复到位)。
在.
之前的是null
。
ToList
导致大多数查询作为LINQ to Objects运行,这完全具有c#语义。没有ToList
,大多数运行在数据库中,数据库对NULL
值有不同的语义。
可能,您应该都理解什么是null 和在数据库中运行查询