Dan*_*plo 10 c# linq asp.net-mvc linq-to-sql
我有一个ASP.NET MVC站点(使用Linq To Sql作为ORM)以及客户想要针对定制数据库的搜索工具的情况,他们可以选择进行"AND"搜索(所有条件匹配)或'OR'搜索(任何标准匹配).查询非常复杂且冗长,我想知道是否有一种简单的方法可以使它同时完成,而无需创建和维护两个不同版本的查询.
例如,当前的"AND"搜索看起来像这样(但这是一个非常简化的版本):
private IQueryable<SampleListDto> GetSampleSearchQuery(SamplesCriteria criteria)
{
var results = from r in Table where
(r.Id == criteria.SampleId) &&
(r.Status.SampleStatusId == criteria.SampleStatusId) &&
(r.Job.JobNumber.StartsWith(criteria.JobNumber)) &&
(r.Description.Contains(criteria.Description))
select r;
}
Run Code Online (Sandbox Code Playgroud)
我可以复制它并用||替换&& 运营商获得'OR'版本,但觉得必须有更好的方法来实现这一目标.有没有人有任何建议如何以一种易于维护的高效灵活的方式实现这一目标?谢谢.