none
Query LINQ RRS feed

  • Pergunta

  • Pessoal estou quebrando a cabeça aqui  pra fazer um coisa teporicamente super simpes que é preencher um datagrid e fazer ele ser editavel, no meu projeto tenho vários e todos deram certo, a não ser por um que tenho uma item a ser visualizado que esta em outra tabela que seria uma tabela genérica, GenericType, onde tenho o tipo de campanha, consigo popular o datagrid usando a query abaixo, porém ela não se torna editavel pois não é AsQuerable, gostaria de saber se consigo adaptar a query abaixo para ela ser AsQgerable.

     

     public static IEnumerable<Campaign> ListCampaign(SVCEntities cx)
        {
          return (from c in cx.Campaign
              join g in cx.GenericType on c.CampaignTypeID equals g.TypeID
              where g.TypeName.Equals("Campaign")
              orderby c.Name
              select new
              {
                CampaignID = c.CampaignID,
                CampaignTypeID = c.CampaignTypeID,
                DescriptionCampaignType = g.Description,
                Leader = c.Leader,
                Name = c.Name,
                ViceLeader = c.ViceLeader,
                PriceTableID = c.PriceTableID,
              }).ToList()
              .Select(p => new Campaign()
              {
                CampaignID = p.CampaignID,
                CampaignTypeID = p.CampaignTypeID,
                DescriptionCampaignType = p.DescriptionCampaignType,
                Leader = p.Leader,
                Name = p.Name,
                ViceLeader = p.ViceLeader,
                PriceTableID = p.PriceTableID,
              });
    
    att.
    Moizés Cerqueira | MCP
    Site: www.moizes.cerqueira.nom.br
    Twitter: @moicer
    quinta-feira, 10 de fevereiro de 2011 12:36

Todas as Respostas

  • Moisés você terá que usar o AsQueryable no final do pultimo Select, ou melhor para usar no grid, usar o ToList, você pode retornar como você está retornando e no momento em que jogar no grid fazer o ToList

    quinta-feira, 10 de fevereiro de 2011 17:51
  • Cara usei sua dica mais não obtive sucesso, passei na hora que populo o datagrid detsa forma;

     

     gridCampaign.DataContext = Campaign.ListCampaign(cx).ToList().AsQueryable();
    

    e a list na camada de dados ficou assim:

     public static IEnumerable<Campaign> ListCampaign(SVCEntities cx)
        {
          return (from c in cx.Campaign
              join g in cx.GenericType on c.CampaignTypeID equals g.TypeID
              where g.TypeName.Equals("Campaign")
              orderby c.Name
              select new
              {
                CampaignID = c.CampaignID,
                CampaignTypeID = c.CampaignTypeID,
                DescriptionCampaignType = g.Description,
                Leader = c.Leader,
                Name = c.Name,
                ViceLeader = c.ViceLeader,
                PriceTableID = c.PriceTableID,
              }).ToList().AsQueryable()
              .Select(p => new Campaign()
              {
                CampaignID = p.CampaignID,
                CampaignTypeID = p.CampaignTypeID,
                DescriptionCampaignType = p.DescriptionCampaignType,
                Leader = p.Leader,
                Name = p.Name,
                ViceLeader = p.ViceLeader,
                PriceTableID = p.PriceTableID,
              });
        }
         
    

    Mas alguma dca?

    fico no aguardo, obrigado.


    Moizés Cerqueira | MCP
    Site: www.moizes.cerqueira.nom.br
    Twitter: @moicer
    sexta-feira, 11 de fevereiro de 2011 11:19