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

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

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

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

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

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

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

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

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

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

Агрегатные канонические функции обсуждают объединенные канонические функции Entity SQL.

Математические канонические функции обсуждают канонические функции сущности SQL.

Строковые канонические функции обсуждают канонические функции Entity SQL.

Канонические функции даты и времени обсуждают канонические функции Сущности SQL даты и времени.

Побитовые канонические функции обсуждают побитовые канонические функции Entity SQL.

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

Другие канонические функции обсуждают функции, не классифицируемые как побитовые, дата и время, строка, математика или агрегат.

См. также