В чем разница между SqlFunctions и EntityFunctions?

Какая разница? Используются ли они для выполнения функций в sql-стороне, прежде чем получать данные и хранить их в памяти?

P.S:
Оба используются в linq для entites.

Ответ 1

Как указано в документации EntityFunctions

Предоставляет общие методы выполнения CLR, которые выставляют концептуальные модельные канонические функции в запросах LINQ to Entities. Для информации о канонических функциях, см. Канонические функции (Entity SQL).

где Канонические функции

поддерживаются всеми поставщиками данных и могут использоваться всеми запросами технологии. Канонические функции не могут быть расширены провайдером. Эти канонические функции будут переведены на соответствующие данные источника для поставщика. Это позволяет использовать функцию вызовы, выраженные в общей форме через источники данных.

В то время как SQLFunctions

Предоставляет общие методы среды выполнения (CLR), которые вызывают функции в базы данных в запросах LINQ to Entities.

Поэтому, хотя оба набора функций переводятся в собственный SQL, SQLFunctions являются специфичными для SQL Server, тогда как EntityFunctions не являются.

Ответ 2

Как я читал об этом. CLR конвертирует функции EntityFunctions в " канонические функции", которые поддерживаются всеми поставщиками данных.

Но SqlFunctions делают SQL Server выполнять работу, и они указываются только для SQL Server.

Для получения дополнительной информации

Ответ 3

SqlFunctions - это статический класс, введенный в EF4 и находящийся в сборке System.Data.Entity. Он содержит длинный список методов типа Cos, DateAdd, DateDiff, DatePart, GetDate, Exp, Sign, которые сопоставляются с функциями SQL Server. Эти статические функции можно вызвать в запросах LINQ to Entities.

enter image description here

EF4 также представил статический класс EntityFunctions. Этот класс предоставляет концептуальные модели канонических функций, которые могут использоваться в запросах LINQ to Entities. Эти функции сопоставляются с функциями в пространстве имен System.Data.Metadata.Edm, и они доступны только в концептуальной модели.

enter image description here

Для получения дополнительной информации нажмите здесь