none
Atualização de Vários Registros no LINQ como no SQL RRS feed

  • Pergunta

  • Boas pessoal.

    Alguém sabe se existe algo no LINQ similar ao seguinte código em SQL:

    Update TABELA
    Set CAMPO = VALOR
    WHERE COD > 10

    Obrigado!

    Leonardo
    terça-feira, 10 de fevereiro de 2009 18:38

Respostas

  • Isso não funciona. Não é possível excluir ou atualizar vários registros de uma vez com LINQ de uma maneira rápida e pratica. É necessário programar alguns passos, o que faz compensar o uso de Stored Procedure dentro do SQL mesmo, e chamar essas SP como funçoes de dentro do LINQ.

    Obrigado a todos mesmo assim!
    segunda-feira, 6 de abril de 2009 13:52

Todas as Respostas

  • um.. de uma forma direta assim nao teria... ou vc cria uma procedure ou

    var tabela = from item on context.Tabela where item.COD > 10 select item
    foreach (var registro in tabela) registro.Campo = valor;
    context.Tabela.SubmitChanges();

    domingo, 15 de fevereiro de 2009 22:33
    Moderador
  • Ola Rui. Dessa maneira não funcionou.

    O código ficou:

    var tabela = from cbs in dm.tbColaboradorBancoSaldos 
                    where(cbs.DtFechamento >= Dt1)&&(cbs.DtFechamento <= Dt2)
                    &&(cbs.IdColaboradorBanco == IdColaboradorBanco)
                    select cbs.IdColaboradorBanco;

    foreach (var registro in tabela)
        registro.Delete ** Essa parte não existe

    Como fazer para excluir todos os registros de tabela?

    Obrigado!

    segunda-feira, 9 de março de 2009 17:47
  • var tabela = from cbs in dm.tbColaboradorBancoSaldos 
                    where(cbs.DtFechamento >= Dt1)&&(cbs.DtFechamento <= Dt2)
                    &&(cbs.IdColaboradorBanco == IdColaboradorBanco)
                    select cbs;

    foreach (var registro in tabela) dm.tbColaboradorBancoSaldos.Delete(registro)

    terça-feira, 17 de março de 2009 20:42
    Moderador
  • Faz assim:

    var registros = dm.tbColaboradorBancoSaldos.Where(c => (c.DtFechamento >= Dt1) && (c.DtFechamento <= Dt2) && (cbs.IdColaboradorBanco == IdColaboradorBanco) );
    dm.Delete(registros);
    dm.SubmitChanges();
    • Sugerido como Resposta Xakkal86 sábado, 4 de abril de 2009 18:20
    sábado, 4 de abril de 2009 18:20
  • Isso não funciona. Não é possível excluir ou atualizar vários registros de uma vez com LINQ de uma maneira rápida e pratica. É necessário programar alguns passos, o que faz compensar o uso de Stored Procedure dentro do SQL mesmo, e chamar essas SP como funçoes de dentro do LINQ.

    Obrigado a todos mesmo assim!
    segunda-feira, 6 de abril de 2009 13:52
  • opa... me corrigindo... nem sei onde tava com a cabeça nesse dia...

    dm.tbColaboradorBancoSaldos.DeleteAllOnSubmit(dm.tbColaboradorBancoSaldos.Where(cbs => cbs.DtFechamento >= Dt1 && cbs.DtFechamento <= Dt2 && cbs.IdColaboradorBanco == IdColaboradorBanco);

    dm.SubmitChanges();

    Desculpa pelo engano acima...

    terça-feira, 23 de junho de 2009 02:51
    Moderador