Jump to content
Sign in to follow this  
Flatdnl

Entity Framework - Atualizar Dados

Recommended Posts

Flatdnl

Boa Dia Pessoal,

Estou tentando fazer uma atualização em uma tabela utilizando o código abaixo. Na primeira vez atualiza normalmente, mas quando tento fazer uma atualização no mesmo registro retorna o seguinte erro:

"A instrução de atualização, inserção ou exclusão de armazenamento afetou um número inesperado de linhas (0). As entidades podem ter sido modificadas ou excluídas após o carregamento. Atualize as entradas do ObjectStateManager."

Código:

Using db As New CNS_CEEntities
            Try
                db.Connection.Open()
                trans = CType(db.Connection.BeginTransaction(), EntityClient.EntityTransaction)

                For i = 0 To gridLotes.Rows.Count - 1
                    Dim l As New LOTE()

                    l.NumeroLote = gridLotes.Item(0, i).Value
                    db.AttachTo("LOTE", l)

                    l.Largura = CDbl(gridLotes.Item(2, i).Value)
                    l.UnidadeMetalica = gridLotes.Item(3, i).Value
                    l.PesoLiquido = CDbl(gridLotes.Item(5, i).Value)
                    l.PerdaInicial = CDbl(gridLotes.Item(6, i).Value)
                    l.PerdaFinal = CDbl(gridLotes.Item(7, i).Value)
                    l.Condicao = gridLotes.Item(8, i).Value
                    l.CodExterno = gridLotes.Item(9, i).Value
                    l.Status = gridLotes.Item(10, i).Value

                    Dim cert As String = gridLotes.Item(4, i).Value
                    'Dim strCert = (From x In db.CERTIFICADO Where x.IdCertificado = cert).First()
                    l.CERTIFICADO = (From x In db.CERTIFICADO Where x.IdCertificado = cert).First()

                    db.SaveChanges()

                Next

                trans.Commit()
                MsgBox("Registros Incluidos com Sucesso!", MsgBoxStyle.Information, "Mensagem")
                'Limpa_Campos()
            Catch ex As Exception
                trans.Rollback()
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Mensagem")
            End Try

        End Using

Ja atualizei o modelo, ja refiz as tabelas e associations e ainda nada!

Alguem sabe o porque acontece isso?

Desde ja agradeço!

Share this post


Link to post
Share on other sites
Caça

Não estás a actualizar nada, esse código serve apenas para inserir um novo registo..


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Flatdnl

Caça, como faço um UPDATE utilizando o EF então, pois é dessa forma que atualizo os dados nas outras tabelas do sistema. Todos funciona normalmente dessa forma, só nessa ultima que não funcionou!

Obrigado!

Share this post


Link to post
Share on other sites
Caça

Primeiro tens de fazer um Query que te retorne o registo com o ID pretendido, depois alteras os campos e no fim gravas


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.