有什么不同 ?是否都用于在获取数据并将它们存储在内存中之前在 sql 端执行功能?
PS:
两者都用于linq to entites。
正如文档所述EntityFunctions
提供在 LINQ to Entities 查询中公开概念模型规范函数的公共语言运行时 (CLR) 方法。有关规范函数的信息,请参阅规范函数(实体 SQL)。
其中规范函数
所有数据提供者都支持,并且可以被所有查询技术使用。提供者不能扩展规范函数。这些规范函数将被转换为提供者的相应数据源功能。这允许跨数据源以通用形式表示的函数调用。
提供在 LINQ to Entities 查询中调用数据库中的函数的公共语言运行时 (CLR) 方法。
因此,尽管这两组函数都被转换为原生 SQL,但 SQLFunctions 是特定于 SQL Server 的,而 EntityFunctions 不是。
当我读到它时。CLR 将 EntityFunctions 函数转换为所有数据提供者都支持的“规范函数”。
但是 SqlFunctions 让SQL Server来完成这项工作,它们只为 SQL Server 指定。
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 命名空间中的函数,并且它们仅在概念模型中可用。

欲了解更多信息,请单击此处
万一有人遇到这个旧帖子,System.Data.Entity.EntityFunctions现在已过时并替换为System.Data.Entity.DbFunctions.