none
Como inserir vários registros em uma Entity RRS feed

  • Pergunta

  • Olá Pessoal!

    Como faço para inserir vários registros em uma Entity e depois salvar td de uma vez no banco de dados? Estou usando o código abaixo, porém só consigo salvar o ultimo:

    db =

    New DadosDataContext

    Dim

     

    itens As New

    Itens_venda()

     

    For cont As Integer = 0 To

    dgvVendas.Rows.Count - 1

     

    With

    itens

    .codigo_venda = txtCodVenda.Text

    .codigo_produto = dgvVendas.Rows(cont).Cells(0).Value

    .preco_produto = dgvVendas.Rows(cont).Cells(2).Value

    .qtde_produto = dgvVendas.Rows(cont).Cells(3).Value

     

    End

    With

    db.Itens_vendas.InsertOnSubmit(itens)

     

    Next

    db.SubmitChanges()

     
    Alex Sander
    quarta-feira, 23 de março de 2011 17:55

Respostas

  • Ola Alex.

    Eu trabalho com Entity Framework é parecido, você tentou algo assim?

    Fiz em C#

    var varItems = alguma fonte de dados;
    
    Itens itens = null;
    
    foreach(var item in Items)
    {
      itens = new Itens();
    
      itens.codigo = item.codigo;
      itens.descricao = item.descricao;
    
      db.Itens.InsertOnSubmit(itens);
    }
    
    dbSubmitChanges();
    

    Marcos Aguiar Jr - Brazil blog: https://marquinhosnet.wordpress.com/
    • Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 25 de março de 2011 16:24
    • Marcado como Resposta Alex Sander quarta-feira, 30 de março de 2011 17:28
    • Não Marcado como Resposta Alex Sander quarta-feira, 30 de março de 2011 17:29
    • Marcado como Resposta Alex Sander quarta-feira, 30 de março de 2011 17:29
    quarta-feira, 23 de março de 2011 18:53
  • A questão está ai na instanciação da entidade. Você precisa fazer isto para todo objeto que você deseja persistir.

    coloque o ato de criação do objeto logo abaixo do For e antes de sair for, salve o objeto com o InsertOnSubmit


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    quinta-feira, 24 de março de 2011 12:07
    Moderador

Todas as Respostas

  • Ola Alex.

    Eu trabalho com Entity Framework é parecido, você tentou algo assim?

    Fiz em C#

    var varItems = alguma fonte de dados;
    
    Itens itens = null;
    
    foreach(var item in Items)
    {
      itens = new Itens();
    
      itens.codigo = item.codigo;
      itens.descricao = item.descricao;
    
      db.Itens.InsertOnSubmit(itens);
    }
    
    dbSubmitChanges();
    

    Marcos Aguiar Jr - Brazil blog: https://marquinhosnet.wordpress.com/
    • Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 25 de março de 2011 16:24
    • Marcado como Resposta Alex Sander quarta-feira, 30 de março de 2011 17:28
    • Não Marcado como Resposta Alex Sander quarta-feira, 30 de março de 2011 17:29
    • Marcado como Resposta Alex Sander quarta-feira, 30 de março de 2011 17:29
    quarta-feira, 23 de março de 2011 18:53
  • A questão está ai na instanciação da entidade. Você precisa fazer isto para todo objeto que você deseja persistir.

    coloque o ato de criação do objeto logo abaixo do For e antes de sair for, salve o objeto com o InsertOnSubmit


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    quinta-feira, 24 de março de 2011 12:07
    Moderador
  • Alex

     

    Como os amigos de cima ja disseram, é possivel colocar cada objeto num estado de inserção varrendo a collection com um foreach, por exemplo.

    Se não me engano, o entity e o linq trabalham de modos parecidos.

     

    Assim sendo, vou lhe dar um exemplo do linq, e vc verifica se existe o mesmo método no EF.

     

    supondo uma coleção de itens quaisquer, itens por exemplo como citou o Marcos

     

     

    Itens = Collection de Item (que é uma tabela)
    
    
    
    tabelaItens.InsertAllOnSubmit(Itens);
    

     

     

    O método InserAllOnSubmit recebe uma collection e armazena toda a collection de uma vez só, sem necessidade de iterar atraves dos elementos dela. A unica vantagem de usar esta implementação (em teoria) é que vc não gasta tempo de processamento varrendo um foreach, mas sim, monta toda sua collection e o EF é quem irá cuidar destes detalhes pra vc.


    segunda-feira, 28 de março de 2011 15:18