Pregunta

Estoy tratando de hacer una consulta en la que arroje una columna de texto, que contiene un entero como texto, a un INT32. Aquí está la consulta:

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

Sin embargo, obtengo un sistema.data.EntitySQLException con el siguiente mensaje:

Tipo 'EDM.Int32' no se pudo encontrar. Asegúrese de que los esquemas requeridos estén cargados y que los espacios de nombres se importen correctamente. Nombre de tipo cercano, línea 1, columna 75.

De acuerdo a MSDN, EdM.Int32 debería ser un tipo válido.

¿Alguien sabe lo que está mal?

Editar:

Después de alguna prueba y error, descubrí que lo siguiente funciona:

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

¿Están equivocados los ejemplos en MSDN? Siento que me estoy perdiendo algo aquí ...

¿Fue útil?

Solución

Si se ejecuta una consulta con EntityCommand, el tipo de datos es un tipo EDM, mientras que si la consulta se ejecuta con ObjectQuery, el tipo de datos es un tipo CLR.

Parece que está ejecutando el comando a través de ObjectQuery.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top