public async Task <TDataEntity> Add(TDataEntity dataEntity) { if (dataEntity is null) { throw new ArgumentNullException(nameof(dataEntity)); } if (string.IsNullOrWhiteSpace(dataEntity.Id)) { dataEntity.Id = Guid.NewGuid().ToString(); } var command = BuildAddCommand(dataEntity); using (var connection = new SqlConnection(_databaseConfiguration.ConnectionString)) { var result = await connection.QuerySingleAsync <TDataEntity>(command, dataEntity); _cacheHandler.AddToCache(dataEntity); return(result); } }