我有一个场景,我使用lambda表达式按名称,地址和电话号码过滤数据.但是当一个属性没有值时,我的过滤器会考虑属性为null的位置,并给出错误的结果.如果属性为null,是否有任何选项可以使用if条件从三种情况中删除where条件.我的意思是有任何情况下添加where/check仅用于具有值的属性的对象吗?
var filterCriteria ={
name: "abc",
address:"",
phone:""
}
var Details = _context.LogEntities
                    .Where(p => p.name == (filterCriteria.name))
                    .Where(p => p.address== (filterCriteria.address))
                    .Where(p => p.phone== (filterCriteria.phone))
                return Json(Details);
如果您仍希望在名称,地址或电话为空时返回记录,则只需在条件中检查是否为空.
var Details = _context.LogEntities
                    .Where(p => p.name == null || p.name == (filterCriteria.name))
                    .Where(p => p.address == null || p.address == (filterCriteria.address))
                    .Where(p => p.phone == null || p.phone == (filterCriteria.phone))
                return Json(Details);
| 归档时间: | 
 | 
| 查看次数: | 247 次 | 
| 最近记录: |