フィルタリングとページング用のモジュールを実装したいのですが。成功するには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.Title)
動的..
誰かが私を助けてくれますか..私はたくさんのことを試します..しかし、成功しません
じゅ
これを行うには、 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();
}