none
EF - Salvar alterações no contexto sem salvar no banco. RRS feed

  • Pergunta

  • Gostaria de saber se é possivel manipular as entidades no meu contexto e salvar as mudanças sem alterar o banco de dados.

    Tenho mais ou menos o seguinte código:

     

    DbTeste db = new DbTeste();

    var pessoa = (from p in db.PESSOAS where p.SITUACAO == "A" selecet p).SingleOrDefault();

    pessoa.SITUACAO = "B";

     

    Até aqui eu não desejo chamar SaveChanges() para modificar o banco.

    Logo em seguinda quando eu executo a seguinte query:

     

    var pessoa2 = (from p in db.PESSOAS where p.SITUACAO == "B" selecet p).SingleOrDefault();

     

    E a minha variavel pessoa 2 fica nula, como se eu não tivesse mudado o valor.

     

     

     

    terça-feira, 17 de maio de 2011 17:37

Respostas

  • Olá Rogério. Obirgado pela dica, mas acabei resolvendo de uma forma diferente.

    Logo depois de criar meu contexto eu instancei um objeto do tipo DbTransaction da seguinte forma:

     

    DbTeste db = new DbTeste();

    db.Connection.Open();

    DbTransaction transaction = db.Connection.BeginTransaction();

     

    Assim eu pude chamar o médodo SaveChanges e as mudanças não foram aplicadas ao banco.

     

    var pessoa = (from p in db.PESSOAS where p.SITUACAO == "A" selecet p).SingleOrDefault();

    pessoa.SITUACAO = "B";

    db.SaveChanges();


    Pra aplicar as mudanças ao banco foi necessário apenas usar o método Commit da transação.

     

    transaction.Commit();

     

     

    terça-feira, 17 de maio de 2011 20:17

Todas as Respostas