Поделиться через


CAST (Entity SQL)

Преобразует выражение из одного типа данных в другой.

Синтаксис

CAST ( expression AS data_type )

Аргументы

expression Любое допустимое выражение, которое преобразуется в data_type.

data_type Целевой системный тип данных. Это должен быть (скалярный) тип-примитив. Какой тип data_type будет использован, зависит от области запроса. Если запрос выполняется с командой EntityCommand, то типом данных будет тип, определенный в концептуальной модели. Для получения дополнительной информации см. CSDL Specification. Если запрос выполняется командой ObjectQuery<T>, то этим типом данных будет тип CLR.

Возвращаемое значение

Возвращает значение такого же типа, что и аргумент data_type.

Замечания

Выражение приведения имеет аналогичную семантику для выражения Transact-SQL CONVERT. Выражение явного приведения используется для преобразования значения одного типа в значение другого типа.

CAST( e as T )

Если «e» имеет некий тип S, а S можно преобразовать в T, то приведенное выше выражение является допустимым выражением явного приведения. Т должно иметь (скалярный) тип-примитив.

При явном приведении к Edm.Decimalможно дополнительно указать значения аспектов точности и масштаба. Если они не заданы явным образом, принимаются значения по умолчанию для точности и масштаба 18 и 0 соответственно. В частности, для Decimalподдерживаются следующие перегрузки:

  • CAST( d as Edm.Decimal );

  • CAST( d as Edm.Decimal(precision) );

  • CAST( d as Edm.Decimal(precision, scale) );

Использование выражения явного приведения считается явным преобразованием. При явном преобразовании возможно усечение данных и потеря точности.

Примечание.

Операция CAST может выполняться только над типами-примитивами и типами элементов перечисления.

Пример

Следующий запрос Entity SQL использует оператор CAST для приведения выражения одного типа данных к другому. Запрос основан на модели AdventureWorks Sales. Для компиляции и запуска этого запроса выполните следующие шаги.

  1. Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты PrimitiveType".

  2. Передайте следующий запрос в качестве аргумента методу ExecutePrimitiveTypeQuery :

SELECT VALUE cast(p.ListPrice as Edm.Int32)
    FROM AdventureWorksEntities.Products as p order by p.ListPrice

См. также