Dapper & TransactionScope?
Я только начал играть с Dapper. Пока я люблю это. Даппер не работает с TransactionScope
? Я заметил, что даже если я никогда не позвоню TransactionScope.Complete
тогда мои изменения все еще сохраняются в базе данных. Если TransactionScope не поддерживается сейчас, есть ли планы на его поддержку в будущем? Если нет, то вы должны использовать традиционное управление транзакциями (System.Transactions.Transaction)?
Обновление: я только что говорил с Сэмом через Твиттер. Он должен работать. Я обновлю его завтра утром (на работе), чтобы узнать, сможет ли кто-нибудь выяснить, почему мои изменения все еще сохраняются в БД, даже когда я никогда не звонил завершенным.
1 ответ
Это была моя вина, и я не совсем понимал транзакции. Соединение не зачисляется в транзакции автоматически, если вы не открываете соединение в области транзакций:
Автоматическое зачисление
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
}
Подробности можно найти здесь: Детали