0

フィルタリングとページングのためのモジュールを実装したいと思います。成功するにはDynamic LinqまたはReflectionを使用する必要があることを理解していたので、それを機能させようとし始めました..しかし、1対多の関係でフィルタリングされるテキストを含むフィールドは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.タイトル)

動的..

誰かが私を助けることができます..私はたくさんのことを試します..しかし成功しません

ジュ。

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 に答える