首页 > 解决方案 > Asp.net 搜索功能问题

问题描述

我有一个简单的搜索功能,可以让我从不同的表格中搜索某些单词。这很烦人,因为我觉得这里没有看到一个简单的修复方法。有人可以帮忙吗?先感谢您。

视图模型

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

标签: c#asp.netlinqsearch

解决方案


你的结构奇怪。但看起来你想要的只是你的一个实例,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;
}

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


推荐阅读