我想实现一个用于过滤和分页的模块。我明白要成功我必须使用Dynamic Linq或Reflection,所以我开始尝试使它工作..但是因为包含要在一对多关系中过滤的文本的字段EF不喜欢它。
这段代码很好..但是是静态的:
List<Domain.Entities.Action> actions = db.Actions.Include("Menus").Include("ActionDetails")
.Where(x => x.ActionDetails.Any(y => y.Language.Culture == _currentCulture))
.OrderBy(y => y.ActionDetails.Select(z => z.Title).Max()).Skip((pager.Index - 1) * pager.Take).Take(pager.Take)
.ToList();
我想要
。选择(z =&gt; z.Title)
动态..
有人可以帮助我..我尝试了很多东西......但没有成功
菊
答案 0 :(得分:1)
要完成此操作,您需要传递Funt<Action, TResultType>
searchCriteria
不确定您的方法签名是什么样的,但如果您打算返回List<string>
public List<string> PerformSearch(Func<Action, string> selectCriteria)
{
return db.Actions.Include("Menus").Include("ActionDetails")
.Where(x => x.ActionDetails.Any(y => y.Language.Culture == _currentCulture))
.OrderBy(y => y.ActionDetails.Select(**selectCriteria**).Max())
.Skip((pager.Index - 1) * pager.Take).Take(pager.Take)
.ToList();
}