Метод LoadDataSet
закрывает соединение с базой данных перед возвратом. Сначала возвращается открытое соединение, затем заполняется набор данных, а затем соединение закрывается (фактически удалено).
Вы можете увидеть это в источнике Database.cs:
public virtual void LoadDataSet(DbCommand command,
DataSet dataSet,
string[] tableNames)
{
using (var wrapper = GetOpenConnection())
{
PrepareCommand(command, wrapper.Connection);
DoLoadDataSet(command, dataSet, tableNames);
}
}