none
Passar valores para um propriedade tipo Collection de um retorno DataTable com INNER JOIN RRS feed

  • Pergunta

  • Olá pessoal boa tarde? Gostaria de um auxílio em passar valores para minha propriedade 

     private IEnumerable<OrderDetail> orderDetail;. Gostaria de preenchê-la, mas já procurei alguns exemplos e não achei algo com esta situação. Peço a ajuda dos colegas se puder mostrar alguma forma de realizar este procedimentos em que precise ficar preenchendo dois DataTable para fazer inner join com o Linq.

    Vou apresentar a estrutura das Classes abaixo e forma que estou realizando a busca no Banco de Dados.

     public class Order
        {
            public string orderNumber { get; set; }
            public DateTime orderDate { get; set; }
            private DateTime requiredDate { get; set; }
            private DateTime shippedDate { get; set; }
            public int customerNumber { get; set; }
            public bool status { get; set; }
            public string comments { get; set; }
            private IEnumerable<OrderDetail> orderDetail;
    
            public virtual IEnumerable<OrderDetail> OrderDetails
            {
                get { return orderDetail; }
                set { orderDetail = value; }
            }
    
            public Order()
            {
                orderDetail = new List<OrderDetail>();
            }
    
    
    //No formulário do Evento Load
         private void Form1_Load(object sender, EventArgs e)
            {
           
         myConnection = new MySqlConnection(myConnString);
                myConnection.Open();
                
                MySqlDataAdapter conexaoAdapter = 
                    new MySqlDataAdapter("select O.*, D.* " + 
                                            "from Orders O " +
                                            "INNER JOIN OrderDetails D " + 
                                            "ON O.orderNumber = D.orderNumber ", myConnection);
                conexaoAdapter.Fill(DataTableDatbase);
    
    .....
    }

    Tentei usar com o LINQ mas não deu certo esta estrutura abaixo da erro:

    Error 1 Cannot implicitly convert type 'System.Collections.Generic.List<System.Data.DataRow>' to 'System.Collections.Generic.IEnumerable<LINQ_TESTE2.OrderDetail>'. An explicit conversion exists (are you missing a cast?) D:\Samples Projetos\Pizzaria\TesteLinq\LINQ_TESTE2\Form1.cs 47 42 LINQ_TESTE2

      IEnumerable<Order> queryNamesScores =
        from Listorder in DataTableDatbase.Tables["Orders"].AsEnumerable()
        select new Order()
        {
            orderNumber = DataTableDatbase.Tables[0].Rows[0]["orderNumber"].ToString(),
             OrderDetails  = (from scoreAsText in DataTableDatbase.Tables["OrderDetails"].AsEnumerable()
                          select scoreAsText).ToList()
        };

    Alguém tem algum exemplo, dica ou alguma estrutura para realizar este procedimento de preencher a propriedade tipo coleção da minha classe?

    Agradeço...

    sexta-feira, 19 de junho de 2015 16:23

Respostas

  • aqui esta a resposta: http://stackoverflow.com/questions/22859168/cannot-implicitly-convert-type-system-collections-generic-listsystem-data-data

    A flower cannot blossom without sunshine, and man cannot live without love.

    • Sugerido como Resposta Cristopher C I_ quinta-feira, 25 de junho de 2015 13:41
    • Marcado como Resposta Cristopher C I_ quinta-feira, 25 de junho de 2015 19:15
    sexta-feira, 19 de junho de 2015 16:52
    Moderador

Todas as Respostas

  • aqui esta a resposta: http://stackoverflow.com/questions/22859168/cannot-implicitly-convert-type-system-collections-generic-listsystem-data-data

    A flower cannot blossom without sunshine, and man cannot live without love.

    • Sugerido como Resposta Cristopher C I_ quinta-feira, 25 de junho de 2015 13:41
    • Marcado como Resposta Cristopher C I_ quinta-feira, 25 de junho de 2015 19:15
    sexta-feira, 19 de junho de 2015 16:52
    Moderador
  • Não seria bem isso. Este procedimento é converter e também não está compatível com a estrutura da classe que tenho entende..?
    sábado, 20 de junho de 2015 15:42
  • Como que é a estrutura das propriedades do OrderDetails, e como é a estrutura de dados do retorno da sua query? Acho que dá pra fazer um linq sim, só precisa revisar essa estrutura que você está criando, e eu acho que a resposta que o Levi deu está correta, só precisa garantir que os objetos resultantes da sua query com linq façam sentido com os objetos do seu IEnumerable.
    quinta-feira, 25 de junho de 2015 13:31