Какая разница? Используются ли они для выполнения функций в sql-стороне, прежде чем получать данные и хранить их в памяти?
P.S:
Оба используются в linq для entites.
Какая разница? Используются ли они для выполнения функций в sql-стороне, прежде чем получать данные и хранить их в памяти?
P.S:
Оба используются в linq для entites.
Как указано в документации EntityFunctions
Предоставляет общие методы выполнения CLR, которые выставляют концептуальные модельные канонические функции в запросах LINQ to Entities. Для информации о канонических функциях, см. Канонические функции (Entity SQL).
поддерживаются всеми поставщиками данных и могут использоваться всеми запросами технологии. Канонические функции не могут быть расширены провайдером. Эти канонические функции будут переведены на соответствующие данные источника для поставщика. Это позволяет использовать функцию вызовы, выраженные в общей форме через источники данных.
В то время как SQLFunctions
Предоставляет общие методы среды выполнения (CLR), которые вызывают функции в базы данных в запросах LINQ to Entities.
Поэтому, хотя оба набора функций переводятся в собственный 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, и они доступны только в концептуальной модели.
Для получения дополнительной информации нажмите здесь