我有这样的查询:
var listAds = (from a in _db.Ads
where
a.Animal.Contains(animal) &&
a.AnimalBreed.Contains(breed) &&
GeoCodeCalc.CalcDistance(a.X, a.Y, 51.919438, 19.145136) <= distance
select a).ToList();
如果我的字符串(品种或动物)是空的,则找不到任何记录..
即使字符串为空,如何使其工作?
感谢您的回复,最好的问候。
答案 0 :(得分:0)
试试这个:
var listAds = (from a in _db.Ads
where
(a.Animal.Contains(animal)||animal=="") &&
(a.AnimalBreed.Contains(breed)||animal=="") &&
GeoCodeCalc.CalcDistance(a.X, a.Y, 51.919438, 19.145136) <= distance
select a).ToList();
答案 1 :(得分:0)
Kirill回答的小补充: 检查null(如果愿意)值。
更新
抱歉“动物”不存在。 它应该是:
var listAds = (from a in _db.Ads
where
(a.Animal.Contains(animal)|| string.IsNullOrEmpty(a.Animal)) && (a.AnimalBreed.Contains(breed)||string.IsNullOrEmpty(a.AnimalBreed)) &&
GeoCodeCalc.CalcDistance(a.X, a.Y, 51.919438, 19.145136) <= distance
select a).ToList();
答案 2 :(得分:0)
如果我理解正确
如果我的字符串(品种或动物)是空的,则找不到任何记录..
然后您可以在以下代码段中执行此操作
var listAds = (from a in _db.Ads
where
(animal != string.Empty && breed != string.Empty) &&
a.Animal.Contains(animal) &&
a.AnimalBreed.Contains(breed) &&
GeoCodeCalc.CalcDistance(a.X, a.Y, 51.919438, 19.145136) <= distance)
select a).ToList();