Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在LINQ中将字符串转换为浮点_C#_Linq - Fatal编程技术网

C# 在LINQ中将字符串转换为浮点

C# 在LINQ中将字符串转换为浮点,c#,linq,C#,Linq,我有以下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 'Sin

我有以下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(我假设EntityFFramew),您可以在ORM文档中找到映射函数的列表

映射函数基本上是指ORM映射/转换为SQL函数并将其添加到ORM执行的最终结果SQL语句中的C#函数

阅读文档以确保安全

如果您仍然想使用
Float.Parse
,那么您唯一的选择就是先具体化查询,然后解析,然后平均。但不建议这样做。

不是每个C#函数都是映射到SQL的函数。根据您使用的ORM(我假设EntityFFramew),您可以在ORM文档中找到映射函数的列表

映射函数基本上是指ORM映射/转换为SQL函数并将其添加到ORM执行的最终结果SQL语句中的C#函数

阅读文档以确保安全


如果您仍然想使用
Float.Parse
,那么您唯一的选择就是先具体化查询,然后解析,然后平均。但不建议这样做。

您应该能够使用
Convert.ToSingle
而不是
float.Parse

var Avg = DataContext.FormData
    .Select(fd => DataContext.FormData(fd.DataValue))
    .Average(); 

您应该能够使用
Convert.ToSingle
而不是
float.Parse

var Avg = DataContext.FormData
    .Select(fd => DataContext.FormData(fd.DataValue))
    .Average(); 

选择数据到内存,然后在
IEnumerable
中转换值,或者编写自定义SQL查询来进行转换和平均。选择数据到内存,然后在
IEnumerable
中转换值,或者编写自定义SQL查询来进行转换和平均。
convert.ToFloat
不是有效函数。它是
Convert.ToSingle
,此函数未映射到。感谢您提供的信息,我不确定写答案时它是什么。但是建议要求自己检查文档的人。
Convert.ToFloat
不是有效的函数。它是
Convert.ToSingle
,此函数未映射到。感谢您提供的信息,我不确定写答案时它是什么。但建议要求自己检查文档的人。