19

有什么不同 ?是否都用于在获取数据并将它们存储在内存中之前在 sql 端执行功能?

PS:
两者都用于linq to entites。

4

4 回答 4

17

正如文档所述EntityFunctions

提供在 LINQ to Entities 查询中公开概念模型规范函数的公共语言运行时 (CLR) 方法。有关规范函数的信息,请参阅规范函数(实体 SQL)。

其中规范函数

所有数据提供者都支持,并且可以被所有查询技术使用。提供者不能扩展规范函数。这些规范函数将被转换为提供者的相应数据源功能。这允许跨数据源以通用形式表示的函数调用。

SQLFunctions

提供在 LINQ to Entities 查询中调用数据库中的函数的公共语言运行时 (CLR) 方法。

因此,尽管这两组函数都被转换为原生 SQL,但 SQLFunctions 是特定于 SQL Server 的,而 EntityFunctions 不是。

于 2013-03-26T12:50:10.563 回答
5

当我读到它时。CLR 将 EntityFunctions 函数转换为所有数据提供者都支持的“规范函数”。

但是 SqlFunctions 让SQL Server来完成这项工作,它们只为 SQL Server 指定。

了解更多信息

于 2013-03-26T12:52:35.253 回答
5

SqlFunctions是 EF4 中引入的静态类,在程序集中System.Data.Entity。它包含一长串方法Cos, DateAdd, DateDiff, DatePart, GetDate, Exp, Sign,例如映射到 SQL Server 函数的方法。这些静态函数可以在 LINQ to Entities 查询中调用。

在此处输入图像描述

EF4 还引入了静态EntityFunctions类。此类公开了可在 LINQ to Entities 查询中使用的概念模型规范函数。这些函数映射到 System.Data.Metadata.Edm 命名空间中的函数,并且它们仅在概念模型中可用。

在此处输入图像描述

欲了解更多信息,请单击此处

于 2013-03-26T12:58:18.797 回答
4

万一有人遇到这个旧帖子,System.Data.Entity.EntityFunctions现在已过时并替换为System.Data.Entity.DbFunctions.

于 2018-05-24T15:22:22.773 回答