DbTransaction - a common base class for representing database transactions in ADO.NET; each actual ADO.NET provider subclasses this (usually) - for example, SqlTransaction : DbTransaction (sql server client).
Calling self overloading is a general way to implement optional parameters without duplicating code before adding them to C # 4.0. In this case, it is essentially a way of implementing up to 4.0:
public DataTable GetEmployeeAbsenceDurationTypes(DbTransaction tran = null) {...}
any implementation (overload or optional parameter) allows you to use the form:
obj.GetEmployeeAbsenceDurationTypes(); // without transaction obj.GetEmployeeAbsenceDurationTypes(tran); // with transaction
source share