使用多个可能为空的其他集合对表格实施全局搜索

问题描述

我们当前正在使用jQuery数据表来显示不同的打开的凭单。结构基本上是所有不同类型的票证都有相同的基本字段,但其他字段根据类型是不同的。

例如,基础字段是:

id,userid (FK),dateRequested,dateCompleted,ticketTypeId (FK),description

和其他表与不同的票证类型相关联,例如:

move ticket: id,baseFieldsId (FK),equipmentName,newLocation
sw install ticket: id,softwareName,softwareversion
troubleshoot ticket: id,issue

每个基本字段可以有多个票证(例如在一张票证中,移动3种不同的设备)

这个想法是搜索所有打开的票证,数据表显示基本字段,我实现了一种显示每行展开视图以显示订单项的方法搜索时,我希望能够搜索基本字段以及与搜索文本实例匹配的特定字段。

我们目前的操作方式是:

pageData是基础字段实体的类型,并且基础字段实体针对不同的票证类型具有多个不同的集合。

pageData.Where(a =>
   a.id.ToString().Contains(search) ||
   a.description.Contains(search) ||
   string.Concat(a.User.FirstName," ",a.User.LastName).Contains(search) ||
   a.TicketType.TicketTypeName.Contains(search) ||
   a.moveTicket.Select(n => n.equipmentName).Contains(search) ||
   a.moveTicket.Select(n => n.newLocation).Contains(search) ||
   ...

,依次类推。大约有17种不同的票证类型(和对应的表格)。

当前的搜索方法花费很长的时间(有> 7000个基本字段行,对于潜在的其他表有1个很多)。有什么选择可以加快搜索速度?无法链接到该页面,该页面位于Intranet网络上。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)