DbTransaction
- это общий базовый класс для представления транзакций базы данных в ADO.NET; каждый фактический провайдер ADO.NET подклассов это (как правило) - например, SqlTransaction : DbTransaction
(клиент sql-сервера).
Вызов перегрузки self является распространенным способом реализации необязательных параметров, без дублирования кода до их добавления в C # 4.0. В этом случае это, по сути, способ реализации до 4.0:
public DataTable GetEmployeeAbsenceDurationTypes(DbTransaction tran = null) {...}
любая реализация (перегрузки или необязательный параметр) позволяет использовать форму:
obj.GetEmployeeAbsenceDurationTypes(); // without transaction
obj.GetEmployeeAbsenceDurationTypes(tran); // with transaction