Como você faz submitanger apenas enviar uma alteração específica e nem todas as alterações anteriores?
-
24-09-2019 - |
Pergunta
O método ASP.NET LINQ Submitchanges comete alterações para todas as modificações anteriores do banco de dados desde a última vez que foi chamado.
Eu tenho um caso em que faço algo como o seguinte:
ClassX x = new Abc.Linq.ClassX();
DataContext.InsertOnSubmit(x);
ClassY y = new Abc.Linq.ClassXY();
DataContext.InsertOnSubmit(y);
DataContext.SubmitChanges();//x and y are committed to the database
Eu gostaria de inserir y, mas não x na linha acima. Então eu gostaria de inserir X com outra chamada para submitchanges () algum tempo depois. Eu tenho que executar o código no pedido mostrado.
Isso é possível? Ou devo estar chamando algo além de submitchanges ()?
Solução
Eu usaria o DataContexts separados para isso. O DataContext é simplesmente um invólucro para acesso a dados e um conjunto de alterações pendentes. Não suporta compromissos parciais de seu Changelist. InsertonsubMit faz o que diz que faz - há uma razão pela qual você precisa chamar isso antes de realmente querer que ele seja enviado? Talvez se você elaborasse o problema que está prendendo -o nessa ordem de execução, poderíamos fornecer uma solução melhor.