我有以下 LINQ 查询。请注意,这DataValue
是一个string
值。我正在尝试将其转换为浮点数,然后获得平均值。
var Avg = (from fd in DataContext.FormData
select float.Parse(fd.DataValue)).Average();
我收到以下错误:
System.NotSupportedException: 'LINQ to Entities does not recognize
the method 'Single Parse(System.String)' method, and this method
cannot be translated into a store expression.'
这个问题有好的解决方法吗?
并非每个 C# 函数都是 SQL 的映射函数。根据您使用的 ORM(我假设是 EntityFframework),您可以在 ORM 文档中找到映射函数列表。
映射函数基本上是指一个 C# 函数,ORM 将其映射/转换为 SQL 函数并将其添加到由 ORM 执行的最终结果 SQL 语句中。
阅读文档以确保安全。
如果您仍然想使用Float.Parse
,那么您唯一的选择是先具体化查询,然后是解析,然后是平均值。但不建议这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句