我有一个简单的linq查询,它将两个实现相同接口的表联合起来。
对于这个例子,让我们说IAnimal。
var q = (from d in db.Dogs
where d.AnimalID = PetID
select d.Name)
.Union
(from c in db.Cats
where c.AnimalID = PetID
select c.Name)
因此,如果狗部分没有成员,则q被分配{“”,{无论猫在哪里}}。有没有办法在查询后不执行.Where(x=>x!="" | x!= String.Empty)
删除该空记录?
我知道这不是什么大不了的事,但似乎应该有更好的方法吗?
答案 0 :(得分:1)
这怎么不是一个好方法?这有什么问题?
嗯..有一件事是错的。如果应该:
.Where(x => !string.IsNullOrEmpty(x))
如果您使用的是Entity Framework或其他无法处理IsNullOrEMpty的LINQ提供程序,则代码应为:
.Where(x => x != null && x != "")
您的代码使用|
代替&&
并检查空字符串两次,但从不为空。