0

我想实现一个用于过滤和分页的模块。我知道要成功,我必须使用 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();

我想要

.Select(z => z.Title)

动态的..

有人可以帮我..我尝试了很多东西..但没有成功

朱。

4

1 回答 1

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();
}
于 2011-06-24T07:13:56.357 回答