Pregunta

Normalmente si estoy que conecte a un ObjectDataSource a un GridView y tengo una TemplateColumn que tiene una Eval en ella y es nulo, puedo poner un ".ToString ()" que funciona bien. Por alguna razón, esto no funciona de la misma cuando se está utilizando LINQ a SQL.

Que originalmente estaba usando archivos XSD para mi DAL con una costumbre BLL. Lo até a la GridView con un ObjectDataSource. Estoy en el medio de cambiar de los archivos XSD con LINQ to SQL y todo funciona igual que la vieja manera a excepción de las columnas que pueden tener valores nulos.

Cualquier persona ha funcionado en esto antes y si es así, ¿cómo puedo solucionar este problema?

¿Fue útil?

Solución

La mayor parte de todo lo que es LINQ regresa de tipos anulables . Así, en sus expresiones de enlace es necesario utilizar GetValueOrDefault (). ToString () o el nuevo "??" nula coalescencia operador en lugar de simplemente ToString de edad (). Espero que esto ayude. Marque esta enlace a.

Ejemplo:

// this will output the int if not null otherwise an empty string.
<%# (int?)Eval("MyIntegerField") ?? "" %> 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top