C# SqlFunctions.StringConvert不';我不能和替身一起工作

C# SqlFunctions.StringConvert不';我不能和替身一起工作,c#,asp.net,linq,entity-framework,sql-function,C#,Asp.net,Linq,Entity Framework,Sql Function,我有类似的代码 SqlFunctions.StringConvert( (double?) x.Latitude) 但是它总是返回一个整数,尽管它有一个纬度值 有什么帮助吗?SqlFunctions.StringConvert(double?返回一个转换为字符串的整数。要返回十进制值,您需要提供其他重载SqlFunctions.StringConvert(double?vaue,int-length,int-decimals),如下所示: SqlFunctions.StringConvert(

我有类似的代码

SqlFunctions.StringConvert( (double?) x.Latitude)
但是它总是返回一个整数,尽管它有一个纬度值


有什么帮助吗?

SqlFunctions.StringConvert(double?
返回一个转换为字符串的整数。要返回十进制值,您需要提供其他重载
SqlFunctions.StringConvert(double?vaue,int-length,int-decimals)
,如下所示:

SqlFunctions.StringConvert( (double?) x.Latitude, 20, 5)

// If x.Latitude = 34.75, then the result will be "34.75000"
从STR文档中:

默认情况下,数字四舍五入为整数或者如果小数点为 参数为0

参考文献:



你的
纬度
值是多少,它应该返回一个字符串,而不是
int
@Habib它的值是那样的30.084524379285227,但它总是返回30。这很奇怪,你能通过SQL配置文件检查根据LINQ查询生成的查询吗?你是否尝试了
StringConvert
方法的重载?尝试
SqlFunctions.StringConvert((双?)x.纬度,10,10)当我在SQL server上执行它时,它返回正确的经度和纬度值,但当我给它类似SqlFunctions.StringConvert((double?)x.latitude,10,10)的值时它返回正确的值,但它必须基于double的长度是静态的如果我这样做了,它会在右侧添加零,我不希望发生这种情况。可能的替代方法是在Linq查询结束时简单地使用
.ToList()
,然后使用Linq对具有
x.Latitude.ToString()的对象进行格式化
@wdosanjos Linq不支持该函数。ToString()Linq to Entities(EF)不支持该函数,但Linq to Objects支持该函数。因此,我建议使用像
.ToList()
这样的“贪婪”方法来水合所有对象,然后使用
x.Latitude.ToString()
。如果您提供完整的Linq查询,我可以向您演示如何进行。如果我不希望对进行舍入,例如,如果我只希望函数在输入为“34.75”时返回“34”,该怎么办