SqlDataAdapter.Fill () dentro de uma SqlTransaction - isso é uma prática ruim?

Desde que eu tenho uma classe "DB util" com umDataSet QueryDB(string spName, DBInputParams inputParams) método que eu uso para todas as minhas chamadas ao banco de dados, gostaria de reutilizar esse método para dar suporte às chamadas transacionada

Então, no final, terei um SqlDataAdapter.Fill dentro de um SqlTransaction. Será uma prática ruim? Porque raramente vejo o uso de DataAdapter.Fill dentro de uma transação e mais frequentemente ExecuteReader (). Existe algum problema?

Edit1: O fato é que na minha transação muitas vezes é necessário recuperar também alguns dados (por exemplo, identificações automáticas) ... é por isso que eu gostaria de obtê-los como DataSet.

Edit2: Estranho é quando eu uso essa abordagem em um loop for (10000) de 2 processos diferentes, eu recebo "A transação (ID do Processo 55) foi bloqueada nos recursos de bloqueio com outro processo e foi escolhida como vítima do bloqueio. Execute novamente a transação. " . Esse é o comportamento certo?

Edit3: (resposta para Edit2) Eu estava usandoIDENT_CURRENT('XTable') que foi a fonte do erro. Depois voltei paraSCOPE_IDENTITY(), tudo foi resolvid

questionAnswers(2)

yourAnswerToTheQuestion