Dapper & TransactionScope? - PullRequest
       3

Dapper & TransactionScope?

42 голосов
/ 28 июля 2011

Я только начал играть с Dapper. Пока я люблю это. Dapper не работает с TransactionScope? Я заметил, что даже если я никогда не позвоню TransactionScope.Complete, мои изменения сохранятся в базе данных. Если TransactionScope не поддерживается сейчас, есть ли планы на его поддержку в будущем? Если нет, то вы должны использовать традиционное управление транзакциями (System.Transactions.Transaction)?

Обновление: я только что говорил с Сэмом через Твиттер. Он должен работать. Я обновлю его завтра утром (на работе), чтобы узнать, сможет ли кто-нибудь выяснить, почему мои изменения все еще сохраняются в БД, даже когда я никогда не звонил завершено.

1 Ответ

87 голосов
/ 29 июля 2011

Это была полностью моя вина и не совсем понимание транзакции. Соединение не зачисляется в транзакции автоматически, если вы не открываете соединение в области транзакций:

Автоматический набор

  using (var scope = new TransactionScope())
      {
        con.Open();                                
         //update/delete/insert commands here
      }

Ручной набор

    con.Open();
    using (var scope = new TransactionScope())
    {
       con.EnlistTransaction(Transaction.Current);  
       //update/delte/insert statements here
    }

Подробности можно найти здесь: Детали

...