我有以下 LINQ 查询,它从 2 个集合中提取最终结果集:usersAd
和usersWithSecurity
:
var results = from usrAd in usersAd
from usrRepo in usersWithSecurity
.Where(x => usrAd.Value.ToLower() == x.Value.ToLower())
.DefaultIfEmpty()
select new User(userRepository)
{
ID = usrRepo == null ? null : usrRepo.ID,
Value = usrAd.Value,
FullName = usrAd.FullName
};
问题是我不断收到以下错误:Value cannot be null.
我知道问题是usersWithSecurity
集合是空的。我在最后添加了“.DefaultIfEmpty()”,但它仍然产生异常。
如何修改我的 LINQ 语句以继续并返回所有内容和usersAd
项目,usersWithSecurity
如果它存在并且值匹配(如 lambda 所示)?