public override void BulkSaveInStaging(IEnumerable <T> sources)
        {
            var sqlBulkCopy = new SqlBulkCopy(OpenAndGetSqlConnection(), SqlBulkCopyOptions.Default, null);

            sqlBulkCopy.DestinationTableName = SqlStagingTableName;
            sqlBulkCopy.BatchSize            = sources.Count();
            foreach (var element in PropertiesToBulkLoad)
            {
                sqlBulkCopy.ColumnMappings.Add(base.PropertyGetters[element.Name].Name, element.SqlServer().ColumnName);
            }


            var dataReader = new ObjectDataReader(sources, new ObjectDataReaderConfig
            {
                EfProperties           = PropertiesToBulkLoad,
                Types                  = new[] { base.BaseType },
                Context                = Context,
                TempColumnNumOrderName = null
            });

            sqlBulkCopy.WriteToServer(dataReader);
        }
        public override void BulkSaveInStaging(IEnumerable <T> entities)
        {
            var sqlBulkCopy = new SqlBulkCopy(OpenAndGetSqlConnection(), SqlBulkCopyOptions.Default, null);

            sqlBulkCopy.DestinationTableName = SqlStagingTableName;
            sqlBulkCopy.BatchSize            = entities.Count();
            foreach (var element in PropertiesToBulkLoad)
            {
                sqlBulkCopy.ColumnMappings.Add(element.Name, element.SqlServer().ColumnName);
            }
            sqlBulkCopy.ColumnMappings.Add(TempColumnNumOrderName, TempColumnNumOrderName);


            var dataReader = new ObjectDataReader(entities, new ObjectDataReaderConfig
            {
                EfProperties           = PropertiesToBulkLoad,
                Types                  = EntityTypes,
                Context                = Context,
                TempColumnNumOrderName = TempColumnNumOrderName
            });

            //sqlBulkCopy.EnableStreaming = true;
            sqlBulkCopy.WriteToServer(dataReader);
        }