Linq到实体百分比

时间:2012-06-18 16:39:16

标签: linq linq-to-entities percentage

有没有人有任何计算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;

1 个答案:

答案 0 :(得分:2)

如果您使用LINQ to Entities并在查询中按select x * 100.0 / y行写一些内容,那么此表达式将转换为SQL并在数据库中运行。它会很有效率。