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. Для компиляции и запуска этого запроса выполните следующие шаги.
Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты PrimitiveType".
Передайте следующий запрос в качестве аргумента методу
ExecutePrimitiveTypeQuery
:
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Products as p order by p.ListPrice