Question

Normalement, si je relie un ObjectDataSource à un GridView et j'ai un TemplateColumn qui a une Eval en elle et il est nul, je peux juste mettre un « .ToString () » il fonctionne très bien. Pour une raison quelconque, cela ne fonctionne pas la même chose quand vous utilisez LINQ to SQL.

Au départ, je l'aide des fichiers XSD pour mon DAL avec une coutume BLL. J'attaché au GridView avec un ObjectDataSource. Je suis au milieu d'échanger les fichiers XSD avec LINQ to SQL et tout fonctionne comme l'ancienne, sauf pour les colonnes qui peuvent contenir des valeurs NULL.

Quelqu'un at-il rencontré ce avant et si oui, comment puis-je contourner ce problème?

Était-ce utile?

La solution

La plupart tout ce qui revient LINQ est de types nullables . Donc, dans vos expressions de liaison, vous devez utiliser GetValueOrDefault (). ToString () ou le nouveau « ?? » opérateur coalescent null plutôt que vieux ToString plaine (). J'espère que ça aide. Cochez cette lien vers.

Exemple:

// this will output the int if not null otherwise an empty string.
<%# (int?)Eval("MyIntegerField") ?? "" %> 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top