有没有人有任何计算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;
答案 0 :(得分:2)
如果您使用LINQ to Entities并在查询中按select x * 100.0 / y
行写一些内容,那么此表达式将转换为SQL并在数据库中运行。它会很有效率。