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?

Foi útil?

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") ?? "" %> 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top