Linq para valores nulos SQL em GridView
-
23-08-2019 - |
Pergunta
Normalmente, se eu estou ligando um ObjectDataSource a um GridView e eu tenho um TemplateColumn que tem um Eval nele e é nulo, eu posso simplesmente colocar um ".ToString ()" funciona bem. Por alguma razão, isso não funcionar o mesmo quando você estiver usando LINQ to SQL.
Eu originalmente estava usando arquivos XSD para o meu DAL com um BLL personalizado. Amarrei-lo para o GridView com um ObjectDataSource. Eu estou no meio de trocar os arquivos XSD com LINQ to SQL e tudo está funcionando exatamente como a velha maneira, exceto para as colunas que podem ter valores nulos.
Tem alguém correr para isso antes e em caso afirmativo, como posso resolver este problema?
Solução
A maioria tudo o que LINQ retorna é de tipos anuláveis ??. Assim, em suas expressões de ligação você precisa usar GetValueOrDefault (). ToString () ou o novo "??" operador nulo coalescentes, em vez de simplesmente ToString de idade (). Eu espero que isso ajude. Marque esta link para fora.
Exemplo:
// this will output the int if not null otherwise an empty string.
<%# (int?)Eval("MyIntegerField") ?? "" %>