您好我有一个 linq 查询,我将一个对象与存储在我的数据库中的所有其他实体进行比较。名字和姓氏是必填字段,因此我不必检查是否为空。但就街道而言,我必须进行这些检查。
如果两个字段都是空字符串或空字符串或者它们相同,我想匹配。下面的 linq 查询工作正常。
但我在徘徊是不是有任何办法让它更具可读性。例如,使用Bool FieldsAreEqualOrBothNullOrEmpty(r.street, request.street)等自定义函数
无法弄清楚如何做到这一点以及是否可能。
var same =
from r in db.Requests
where r.firstName.ToLower() == request.firstName.ToLower()
&& r.lastName.ToLower() == request.lastName.ToLower()
//Seems long to just compare two fields
&& ( string.IsNullOrEmpty(r.street) && string.IsNullOrEmpty(request.street) )
|| r.street.ToLower() == request.street.ToLower()
select r;
return same;