我有以下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
};
Run Code Online (Sandbox Code Playgroud)
问题是我一直收到以下错误: Value cannot be null.
我知道问题是该usersWithSecurity集合是空的.我在结尾添加了'.DefaultIfEmpty()`但它仍然产生异常.
我如何修改我的LINQ语句以继续并返回来自和项目的所有内容usersAd(usersWithSecurity如果存在且值匹配)(如lambda中所示)?
var usersWithSecurity = _biz.getUsersWithSecurity() ?? new List<User>();
var results = from usrAd in usersAd
from usrRepo in usersWithSecurity
where usrAd.Value.ToLower() == usrRepo.Value.ToLower()
select new User(userRepository)
{
ID = usrRepo == null ? null : usrRepo.ID,
Value = usrAd.Value,
FullName = usrAd.FullName
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3359 次 |
| 最近记录: |