Asp.net搜索功能问题

时间:2019-01-24 00:01:43

标签: c# asp.net linq search

我有一个简单的搜索功能,可以从不同的表中搜索某些单词。 这很烦人,因为我觉得这里没有一个简单的解决方法。有人可以协助吗?预先谢谢你。

  

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>'

1 个答案:

答案 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;
}

再次,我强烈怀疑您在这里不完全了解自己的数据结构。不过,这看起来像是您根据问题中的信息正在尝试做的事情。