有什么不同?都是用来在获取数据并存储到内存之前在SQL端执行函数吗?
P.S:
两者都在linq to entites中使用。
发布于 2013-03-26 20:50:11
正如文档所述,EntityFunctions
提供了公共语言运行库方法,这些方法公开LINQ to Entities查询中的概念模型规范函数。有关规范函数的信息,请参见规范函数(实体SQL)。
where Canonical functions
所有数据提供程序都支持
,并且所有查询技术都可以使用它。规范函数不能由提供程序扩展。这些规范函数将被转换为提供程序的相应数据源功能。这允许跨数据源以通用形式表示函数调用。
提供了公共语言运行库方法,这些方法在LINQ to Entities查询中调用数据库中的函数。
因此,尽管这两组函数都被转换成原生SQL,但SQLFunctions是特定于SQL Server的,而EntityFunctions不是。
发布于 2013-03-26 20:52:35
当我读到它的时候。CLR将EntityFunctions函数转换为所有数据提供程序都支持“规范函数”。
但是SqlFunctions使得SQL Server来做这项工作,并且他们指定只为SQL Server。
发布于 2013-03-26 20:58:19
SqlFunctions
是在EF4中引入的静态类,它位于程序集System.Data.Entity
中。它包含一长串映射到SQL Server函数的方法,如Cos, DateAdd, DateDiff, DatePart, GetDate, Exp, Sign
。可以在LINQ to Entities查询中调用这些静态函数。
EF4还引入了静态EntityFunctions
类。这个类公开了概念模型的规范函数,可以在LINQ to Entities查询中使用。这些函数映射到System.Data.Metadata.Edm命名空间中的函数,并且它们仅在概念模型中可用。
有关详细信息,请单击here
https://stackoverflow.com/questions/15637317
复制相似问题