T-SQL CAST использование в EntityDataSource

Август 16th, 2012 § 0 comments § Прямая ссылка

Всем привет, хочу поделится некоторым опытом использования EntityDataSource, а именно использования оператора LIKE к полю типа int в MS SQL при обычном запросе к с использование T-SQL запрос бы выглядел следующим образом


SELECT *FROM table1 WHERE CAST(UserId as NVARCHAR(10)) LIKE '1%';

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


EntityDataSource1.Where = "CAST(UserId as System.String) LIKE '1%';"

Как видите здесь используются типы не MS SQL а типы C# так что при приведении одних типов к другим в EntityDataSource не забывайте о том что должны работать с типами C# внутренний механизм в EntityDataSource в последствии приведёт данные к соответствующему типу MS SQL.

Смотреть фильмы онлайн