SqlFunctions和EntityFunctions有什么区别?

Dab*_*bas 19 c# entity-framework

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

PS:
两者都用于linq.

Phi*_*hil 16

正如文档所述,EntityFunctions

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

其中,规范功能

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

SQLFunctions

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

因此,尽管两组函数都转换为本机SQL,但SQLFunctions是SQL Server特定的,而EntityFunctions则不是.


Wah*_*tar 5

正如我读到的那样.CLR将EntityFunctions函数转换为所有数据提供程序都支持的" 规范函数 ".

但是SqlFunction使SQL Server能够完成工作并且只为SQL Server指定了它们.

欲获得更多信息


03U*_*Usr 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 命名空间中的函数,并且它们仅在概念模型中可用。

在此处输入图片说明

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