Entity Framework 4.0: не работает операция Entity SQL CAST - PullRequest
4 голосов
/ 28 января 2011

Я пытаюсь сделать запрос, в котором я приведу текстовый столбец, который содержит целое число в виде текста, в Int32. Вот запрос:

SELECT VALUE t FROM MyEntities AS t WHERE CAST(t.TextColumn AS Edm.Int32) > 5

Однако я получаю исключение System.Data.EntitySqlException со следующим сообщением:

Тип 'Edm.Int32' не найден. Убедитесь, что необходимые схемы загружены и что пространства имен импортированы правильно. Рядом с именем типа, строка 1, столбец 75.

Согласно MSDN , Edm.Int32 должен быть допустимым типом.

Кто-нибудь знает, что не так?

Edit:

После некоторых проб и ошибок я обнаружил, что работает следующее:

SELECT VALUE t FROM MyEntities AS t WHERE CAST(t.TextColumn AS System.Int32) > 5

Не верны ли примеры в MSDN? Я чувствую, что здесь что-то упущено ...

1 Ответ

5 голосов
/ 02 февраля 2011

Если запрос выполняется с EntityCommand, тип данных является типом EDM, а если запрос выполняется с ObjectQuery, тип данных является типом CLR.

Похоже, вы выполняете коммани с помощью ObjectQuery.

...