Канонические функции (язык Entity SQL)

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

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

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

При использовании в запросе Entity SQL канонической функции будет вызвана соответствующая функция в источнике данных.

Во всех канонических функциях явным образом определяется обработка входных значений NULL и условия возникновения ошибок. Поставщики хранилищ должны соответствовать этому требованию, однако Entity Framework не контролирует это соответствие.

В сценариях LINQ запросы к платформе Entity Framework предусматривают сопоставление методов CLR с методами базового источника данных. Методы CLR сопоставляются с каноническими функциями, и поэтому правильное сопоставление возможно для любого набора методов, независимо от источника данных.

Пространство имен канонических функций

Для канонических функций выделено пространство имен System.Data.Metadata.Edm. Пространство имен System.Data.Metadata.Edm автоматически включается во все запросы. Однако при импорте другого пространства имен, в котором содержится функция с именем, совпадающим с именем канонической функции (из пространства имен System.Data.Metadata.Edm), то пространство имен необходимо указывать явным образом.

В этом разделе

См. также

Основные понятия

Общие сведения о языке Entity SQL
Справочник по Entity SQL
Сопоставление канонических функций концептуальной модели функциям SQL Server
Определяемые пользователем функции (Entity SQL)