在 mysql 的实体框架中使用数学函数

Las*_*eli 4 c# linq asp.net-mvc entity-framework asp.net-mvc-4

我正在开发 ASP.NET MVC 应用程序,并在其中使用带有实体框架的 Mysql。但是我在执行这样的 Linq 查询时遇到了问题:

var place= dbContext.Places.FirstOrDefault(x => Math.Sqrt(x.Lat) > 0);
Run Code Online (Sandbox Code Playgroud)

我也尝试使用 SqlFunctions:

var place= dbContext.Places.FirstOrDefault(x => SqlFunctions.SquareRoot(x.Lat) > 0);
Run Code Online (Sandbox Code Playgroud)

但无论哪种方式,我都会收到“System.NotSupportedException”:

附加信息:1[System.Double] SquareRoot(System.Nullable无法将类型“System.Data.Entity.SqlServer.SqlFunctions”上的指定方法“System.Nullable 1[System.Decimal])”转换为 LINQ to Entities 存储表达式。

有什么方法可以使用平方根函数,以便将其转换为 LINQ to Entities 表达式?

fre*_*hbm 7

实体框架不支持 Sqrt 函数:

数学规范函数- 支持的函数列表。

所以你可以使用 Math.Pow 插入:

var place= dbContext.Places.FirstOrDefault(x => Math.Pow(x.Lat,0.5) > 0);
Run Code Online (Sandbox Code Playgroud)