c# - 如果在linq中控制?
问题描述
这个查询是我得到的:
var hede = (from customer in _customerRepository.Table
join source in _sourcedefinitionepository.Table on customer.SourceCode equals source.SourceCode
select new {Customer = customer, source.SourceName}
然后我写了这个:
if (agencyName ! = null )
hede = hede.Where(p => p.Customer.Name.StartsWith(agencyName));
如何将 if 代码放入代码的第一部分?
解决方案
你可以通过这种方式实现
where agencyName == null || customer.Name.StartsWith(agencyName));
完整查询
var hede = (from customer in _customerRepository.Table
join source in _sourcedefinitionepository.Table on customer.SourceCode equals source.SourceCode
where agencyName == null || customer.Name.StartsWith(agencyName))
select new {Customer = customer, source.SourceName}
使用 lamda更新。
var hede = _customerRepository.Table.Join(_sourcedefinitionepository.Table, c => c.SouceCode , s => s.SourceCode,
(c, s) => new
{
Customer = c,
s.SourceName
})).Where(p => agencyName == null || p.Customer.Name.StartsWith(agencyName)).ToList();
推荐阅读
- android - 如何根据recyclerview的内容自动更改android中的列数?
- javascript - 如何使用 Thymeleaf th:if 在没有 onclick 的情况下调用 javascript 函数?
- flutter - Flutter Firebase 存储期货问题
- python - setup.py - 如何将子文件夹设置为主包目录?
- python - Spark:如何在纱线上成功导入python文件
- javascript - 如何触发类并在jquery中追加内容?
- linux - 在 Linux 中设置路径变量时出错
- github - Github - 锁定 Travis 配置 - 防止合作者更改它
- excel - 如果单元格值为#N/A,如何在excel单元格中保持空白
- javascript - 如何使分组最快,前提是数组中的数据也显示对象nodeJs