Linq-在实体或子实体中搜索字符串

本文关键字:实体 搜索 字符串 Linq- | 更新日期: 2023-09-27 18:25:23

我有供应商和项目的实体,其中供应商与项目有一对多关系。

我需要在两者中搜索一个字符串,这样搜索结果将返回以下内容:

  1. 名称包含搜索字符串及其所有项目的所有供应商
  2. 拥有名称包含搜索字符串的项目的所有供应商

到目前为止,我已经用两个列表做了这件事,然后做了一个联盟:

var suppliers = repository.Suppliers.Where
       (s => s.Name.Contains(searchString)).Include(Items);
var itemSuppliers = repository.Suppliers.Include(Items).Where
                (s => s.Items.Any(i => i.Name.Contains(searchString));

有没有更好的方法可以做到这一点,最好是使用一个查询?

谢谢

Linq-在实体或子实体中搜索字符串

repository.Suppliers.Include(Items).Where(s => s.Name.Contains(searchString) || s.Items.Any(item => item.name.Contains(searchString)));

希望它能帮助你。