如何将带有过滤逻辑的链接查询重构为可重用的方法

时间:2017-10-09 21:30:08

标签: c# entity-framework linq refactoring

我使用EF Core查询数据库,我在我的存储库类中有几个这样的查询,根据作为过滤器传递的值过滤结果。

np.linspace

是否可以实施可重复使用的方法,因此我不必为每个字段重复此操作? (确切地说有12个字段)。

2 个答案:

答案 0 :(得分:0)

嗯,我不这么认为,因为在这种情况下,你不只是在每种情况下访问一阶对象。在某些情况下,您要检查这些对象的属性。

答案 1 :(得分:0)

试试这个。包含所有其他属性&&操作

query = query.Where(j => 
            string.IsNullOrEmpty(queryObj.JobBoard) ? true : j.JobBoard.JobBoardName.Contains(queryObj.JobBoard)
            && string.IsNullOrEmpty(queryObj.Division) ? true : j.Division.Contains(queryObj.Division)
            && string.IsNullOrEmpty(queryObj.City) ? true : j.City.Contains(queryObj.City)
            && string.IsNullOrEmpty(queryObj.State) ? true : j.State.StateName.Contains(queryObj.State)
            );