我有一个简单的搜索功能,可以从不同的表中搜索某些单词。 这很烦人,因为我觉得这里没有一个简单的解决方法。有人可以协助吗?预先谢谢你。
ViewModel
IEnumerable<Owner> Owners {get; set;}
IEnumerable<Car> Cars {get; set;}
搜索方法
public IEnumerable<ViewModel> Search(string search)
{
ViewModel searchVM = new ViewModel();
return searchVM.Owner.Where(o => o.Name.Contains(search)) ||
searchVM.Cars.Where(c => c.Model.Contains(search));
}
错误
Operator '||' cannot be applied to operands of type 'IEnumerable<Owner>' and
'IEnumerable<Car>'
答案 0 :(得分:1)
您的结构非常很奇怪。但它看起来 好像您想要的只是ViewModel
的一个实例,每个属性都由搜索字符串过滤。
(注意:绝对不清楚ViewModel
在哪里填充其属性。您是否只是将整个数据存储都存储在其构造函数中?这似乎不理想。
但至于被问到的问题...)
也许是这样的:
public ViewModel Search(string search)
{
ViewModel searchVM = new ViewModel();
searchVM.Owner = searchVM.Owner.Where(o => o.Name.Contains(search));
searchVM.Cars = searchVM.Cars.Where(c => c.Model.Contains(search));
return searchVM;
}
再次,我强烈怀疑您在这里不完全了解自己的数据结构。不过,这看起来像是您根据问题中的信息正在尝试做的事情。