0

有人对在 Linq to Entities 中计算百分比有任何提示吗?

我猜肯定有比返回 2 个结果并在内存中计算更有效的方法。也许是对 let 或 into 的创造性使用?

编辑


感谢 Mark 的评论,这是一个代码片段,但我认为这将导致 2 个数据库命中:

int passed = (from lpt in this.PushedLearnings.Select(pl => pl.LearningPlanTask)
where lpt.OnlineCourseScores.Any(score => score.ActualScore >= ((lpt.LearningResource.PassMarkPercentage != (decimal?)null) ?lpt.LearningResource.PassMarkPercentage : 80))
select lpt).Count();

int total = (from lpt in this.PushedLearnings.Select(pl => pl.LearningPlanTask)
select lpt).Count();

double percentage = passed * 100 / total;
4

1 回答 1

2

如果您使用 LINQ to Entities 并select x * 100.0 / y在查询中编写一些内容,则此表达式将转换为 SQL 并在数据库中运行。这将是有效的。

于 2012-06-18T16:41:46.173 回答