【发布时间】:2018-12-10 01:06:54
【问题描述】:
我有一个名为 Items(Name,Description) 的表
用户可以根据名称、描述或两者来搜索项目。 (实际的表有大约 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();
}
【问题讨论】:
-
究竟在寻找什么?摆脱这条线
IQueryable<Item> items = source.Where(a=> a == a);? -
是的,我想去掉那一行。
标签: c# entity-framework linq-to-entities entity-framework-core