我有这个控制器方法:
public ActionResult Index(string searchError)
{
// get all errors
var viewModel = _errorsRepository.Errors.OrderByDescending(e => e.TimeUtc).
Select(e => new ErrorViewModel
{
ErrorId = e.ErrorId,
Message = e.Message,
TimeUtc = e.TimeUtc
});
if (!String.IsNullOrEmpty(searchError))
viewModel = viewModel.Where(e => e.Message.ToLower().Contains(searchError.Trim().ToLower()));
return View(viewModel);
}
我认为做额外的过滤器会减慢一切,我想知道是否可以将Where子句添加到Select语句中,并检查searchError
是否为空内联。
这个是可能的吗?
发布于 2018-10-23 03:32:43
如果searchError为null,这意味着FALSE,我们不需要传递第二个条件(快捷方式)。如果searchError不为空,则表示为真,但第二个条件必须为真才能使此WHERE条件为真。
viewModel = viewModel.Where(e =>
!String.IsNullOrEmpty(searchError)
&&
e.Message.ToLower().Contains(searchError.Trim().ToLower()));
https://stackoverflow.com/questions/9205247
复制相似问题