Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fernando Martinelli

Não posso utilizar list<> no WCF para o SIlverlight

Recommended Posts

Olá,

Eu estou fazendo uma camada WCF para ser consumida por um projeto de Silverlight. Eu consegui ir ao banco de dados, pegar o nome do cliente e passar para o Silverlight:

[OperationContract]
       public string ObterClientes()
       {

           DataSet testCliente = dbExecute.dbOpenQuery("SELECT nome, DataNascimento, Empresa FROM profissionais Where numero=1");

           ClienteSanzares cliente;

           cliente = new ClienteSanzares();
           cliente.Nome = testCliente.Tables[0].Rows[0].ItemArray[0].ToString ();
           cliente.DataNascimento = Convert.ToDateTime("30/07/1989");
           cliente.Empresa = "Sanzares Solutions";

           return (cliente.Nome);
       }

 

Mas eu preciso Retornar todas as informações para o meu formulário Silverlight, mas quando tento usar List<> tanto para declara o retorno do metodo quanto para uma variável dentro do metodo, ele não aceita. Tanto que no auto-completar do VS 2010 nem aparece neste módulo o List<>. Como no Silverlight não existe a classe "System.Data", não posso retornar o DataSet direto para o formulário! O que faço para retornar uma coleção de dados para o Silverlight? Estou buscando os dados manualmente via ODBC sem utilizar Entity Framework.:

 

  public static DataSet dbOpenQuery (string SQLQuery)
      {
          msgErro = "";
          string cs = "DRIVER={PostGreSQL Ansi};SERVER=string de conexão";
          OdbcConnection dbBanco = new OdbcConnection(cs);
          try
          {           
              dbBanco.Open();
              //OdbcDataReader dr = dbFuncao.ExecuteReader();
              DataSet ds = new DataSet();
              OdbcDataAdapter da = new OdbcDataAdapter();
              OdbcCommandBuilder cb = new OdbcCommandBuilder(da);
              da.SelectCommand = new OdbcCommand (SQLQuery,dbBanco);
              da.Fill(ds);
              dbBanco.Dispose();
              return (ds);
          }
          catch (Exception err)
          {
              msgErro = err.Message; return (null);
          }
      } 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funciona desta forma, é um pouco mais chato, pesquise sobre chamada assíncrona.

 

Abraços...

 

Oi Quintelab,

 

Obrigado por responder.

 

Porque nos tutoriais que tem na internet mostra a chamada feita assim e eles usam List<> e IEnumerable sem problemas, mas quando eu faço extamente igual ao deles o VS reclama que eu não posso usar List<> ? veja em: http://sanzares.com.br/blog/consumindo-servico-wcf-silverlight-4-consuming-wcf-silverlight/

Declarando meu método com retorno String na WCF funcionou. Ele pega no banco de dados e retorna o resultado de um campo para o Silverlight, mas não tenho nenhuma variável de coleção para retornar vários dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.