Я пытаюсь написать общий макет запросов, которые имеют схожие ограничения и набор результатов, за исключением свойства оценки в отчете.Я передаю свойство Score как лямбда-выражение и могу использовать его в select, но Where () вызывает у меня горе.
Любые идеи о том, как make Where () работает с выражением func ИЛИ как написать выражение, приемлемое для Where (), используя другое выражение func, которое указывает на сравниваемое свойство?
private void SomeMethod(Expression<Func<TDischargeResult, object>> field)
{
TBenchmark benchmark = null;
AnalyticsReport report = null;
IEnumerable<AnalyticsReport> reports = _session.QueryOver<TDischargeResult>()
.JoinAlias(record => record.Benchmark, () => benchmark)
//.Where(field > benchmark.Average) // compare score property to average
.SelectList(select =>
{
select.SelectAvg(field).WithAlias(() => report.Score);
return select;
}).Clone()
.TransformUsing(Transformers.AliasToBean<AnalyticsReport>())
.List<AnalyticsReport>();
}