我正在尝试理解下面的查询失败的原因
System.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()。包含(lettersToMatch.ToLower())|| p.LastName.ToLower()。包含(lettersToMatch.ToLower())
修复是删除UserProfiles.ToList()上的.ToList(),我想了解为什么失败(没有修复)。
答案 0 :(得分:1)
.
之前的事情之一是null
。找出哪个。
ToList
导致大多数查询作为具有C#语义的对象的LINQ运行。没有ToList
数据库中的大多数运行,它们具有NULL
值的不同语义。
或许,你应该两个理解什么是null 和在数据库中运行查询。