gpt4 book ai didi

c# - 如何比较 lambda 表达式与 QueryOver where 限制中的别名属性?

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:06 25 4
gpt4 key购买 nike

我正在尝试编写查询的共享布局,这些查询共享类似的限制和结果集,但报告中的分数属性除外。我将 score 属性作为 lambda 表达式传递,我可以在 select 中使用它,但是 Where() 让我很伤心。

关于使 Where() 与表达式 func 一起工作的任何想法或者如何使用另一个指向要比较的属性的表达式函数来编写 Where() 可接受的表达式?

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>();
}

最佳答案

我可以建议另一种方法:

_session.QueryOver<TDischargeResult>()
.JoinQueryOver(x=>x.Benchmark)
.Where(x=>field>x.Average)

以及您的其余代码。

关于c# - 如何比较 lambda 表达式与 QueryOver where 限制中的别名属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6834334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com