用表达式重构
本文关键字:重构 表达式 | 更新日期: 2023-09-27 18:15:33
我需要重构方法Test1和Test2。
第一个测试方法,其中AddInfo != null
:
public List<FileRequest> Test1(long fileId)
{
return context.FileRequest.Include("AddInfo")
.Where(x=>x.FileId = fileId && x.AddInfo != null)
}
第一个测试方法,其中AddInfo == null
:
public List<FileRequest> Test2(long fileId)
{
return context.FileRequest.Include("AddInfo")
.Where(x=>x.FileId = fileId && x.AddInfo == null)
}
我试图创建泛化方法,但无法实现。
public List<FileRequest> Test2(long fileId, Expression<Func<AddInfo, bool>> expression)
{
return context.FileRequest.Include("AddInfo")
.Where(x=>x.FileId = fileId && expression)
}
我如何重构我的方法?
最简单的选择是只使用两个Where
调用:
public IQueryable<FileRequest> Test2(long fileId,
Expression<Func<FileRequest, bool>> predicate)
{
return context.FileRequest.Include("AddInfo")
.Where(x=>x.FileId == fileId)
.Where(predicate);
}