我们将从使用Dapper到使用Entity框架。这种方法应该返回给定Id的升数。
示例:
const string query = @"
SELECT Id, Sum(Litres) as Litres
FROM Litres
GROUP BY Id;
在这种情况下,结果应该是:
id:1 SumLitres:4.863 id:2 SumLitres:1.23
在实际情况中,有数千个条目,并且当使用dapper和Linq时,这些条目的总和的精确度是不同的。我们可以接受3个十进制预判,但不低于此。
小巧的查询:
context.Litres.Select(x => new { x.Id, x.Litres})
.GroupBy(x => x.Id)
.AsNoTracking()
.ToList()
.Select(g => new { Id = g.Key, Litres = g.Sum(s => s.Litres) })
.ToList();
linq查询:
loaded: boolean
问题是结果在小数点后第二位有所不同,我不知道哪些查询给出了最高精度的结果?
任何人都知道如何提高精度或哪一个最高?
列Liters的数据类型为:real。
答案 0 :(得分:0)
当从SQL Real转换为.Net Single时,可能会有一些舍入:Sql server real datatype, what is the C# equivalent?
您可以尝试使用实体上下文执行原始SQL:https://msdn.microsoft.com/en-us/library/jj592907(v=vs.113).aspx