У меня есть таблица с названием Items (Имя, Описание)
Пользователь может искать элементы на основе имени, описания или обоих. (Фактическая таблица имеет около 15 полей, по которым можно искать, но в этом примере просто оставляем два).
Это ищет как имя, так и описание. Но мне нужно, чтобы это было одно, другое или оба.
var source = this.DbContext.Items;
IQueryable<Item> items = source.Where(a => a.Name.Contains(item.Name));
items = items.Where(a => a.Description.Contains(item.Description));
return items.ToList();
Это лучшее, что я придумал, но эта вторая строка кажется довольно прикольной.
internal List<Item> Search(Item item)
{
var source = this.DbContext.Items;
IQueryable<Item> items = source.Where(a=> a == a);
if(!string.IsNullOrWhiteSpace(item.Name)) items = items.Where(a => a.Name.Contains(item.Name));
if(!string.IsNullOrWhiteSpace(item.Description)) items = items.Where(a => a.Description.Contains(item.Description));
return items.ToList();
}