Entity framework 4 实体框架4:Math.Sin()-函数

Entity framework 4 实体框架4:Math.Sin()-函数,entity-framework-4,Entity Framework 4,是否可以在Linq to Entites(Entity Framework 4)-查询中调用Math.Sin()函数 我已经读到,当前的EntityFramework4没有实现这个功能 也许有办法解决这个问题 (我不想邀请内存中的所有条目。) 感谢并致以最诚挚的问候不幸的是,在LinqToEntities查询(或实体SQL查询)中无法调用Math.Sin 在不首先检索所有对象的情况下实现这一点的唯一方法是编写一个SQL查询,该查询执行您想要的操作并通过调用它。这并不像听起来那么糟糕,因为你仍然可

是否可以在Linq to Entites(Entity Framework 4)-查询中调用Math.Sin()函数

我已经读到,当前的EntityFramework4没有实现这个功能

也许有办法解决这个问题

(我不想邀请内存中的所有条目。)


感谢并致以最诚挚的问候

不幸的是,在LinqToEntities查询(或实体SQL查询)中无法调用
Math.Sin

在不首先检索所有对象的情况下实现这一点的唯一方法是编写一个SQL查询,该查询执行您想要的操作并通过调用它。这并不像听起来那么糟糕,因为你仍然可以



编辑:阅读其他答案后,似乎可以调用这些类型的函数(
SqlFunctions
包含44个具有各种重载的函数)。我保留原来的答案,因为这是实现相同结果的另一种方法。

不幸的是,在LinqToEntities查询(或实体SQL查询)中调用
Math.Sin
是不可能的

在不首先检索所有对象的情况下实现这一点的唯一方法是编写一个SQL查询,该查询执行您想要的操作并通过调用它。这并不像听起来那么糟糕,因为你仍然可以


编辑:阅读其他答案后,似乎可以调用这些类型的函数(
SqlFunctions
包含44个具有各种重载的函数)。我保留原来的答案,因为这是实现相同结果的另一种方法。

几个函数(通常)具有明显的SQL对应项,例如
Math。Sin
不能直接用于实体框架查询。这大概是因为它们不能可靠地转换为不同的SQL实现。然而,大量特定于MSSQL的函数在类
中作为静态方法公开。如果您直接调用它们,它们会抛出异常,但是如果在LINQ查询中使用,它们会转换为正确的SQL

请参阅封面下发生的魔法(即
属性)。

一些函数(通常)具有明显的SQL对应项,例如
Math.Sin
不能直接用于实体框架查询。这大概是因为它们不能可靠地转换为不同的SQL实现。然而,大量特定于MSSQL的函数在类
中作为静态方法公开。如果您直接调用它们,它们会抛出异常,但是如果在LINQ查询中使用,它们会转换为正确的SQL


看看封面下发生的魔法(即
属性)。

当然可以从EF4开始使用这样的函数。在EF4中,EF团队引入了可以在linq中使用的SqlServer函数。你应该考虑使用正则函数,因为它们是数据库不可知的,每个厂商都应该转换这些函数来存储特定的等价物。但是,当这些函数不可用时,您可以求助于SqlServer命名空间(ESQL)或用于linq的SqlFunctions

以分贝位置从l开始 选择SqlServer.Sin(l.Latitude)+SqlServer.power(l.longitude)

我在书中的函数一章中介绍了其中几个选项。具体来说,您可以在esql中查看11-10配方调用数据库函数
11-11在LINQ中调用数据库函数当然可以从EF4开始使用这样的函数。在EF4中,EF团队引入了可以在linq中使用的SqlServer函数。你应该考虑使用正则函数,因为它们是数据库不可知的,每个厂商都应该转换这些函数来存储特定的等价物。但是,当这些函数不可用时,您可以求助于SqlServer命名空间(ESQL)或用于linq的SqlFunctions

以分贝位置从l开始 选择SqlServer.Sin(l.Latitude)+SqlServer.power(l.longitude)

我在书中的函数一章中介绍了其中几个选项。具体来说,您可以在esql中查看11-10配方调用数据库函数
11-11在LINQ中调用数据库函数目前不在我的开发机器附近,但System.Data.Objects.SqlClient.SqlFunctions.Sin()不起作用?能否将以下答案之一标记为正确答案?现在不在我的开发机器附近,而是System.Data.Objects.SqlClient.SqlFunctions.Sin()不起作用?你能把下面的一个答案标为正确答案吗?