示例#1
0
        public async Task BulkInsertAsync <TRow>(string tableName, List <TRow> rows) where TRow : class, new()
        {
            var tableLock = GetTableLock(tableName);
            await Utils.LockedActionAsync(tableLock, async() =>
            {
                if (rows == null || !rows.Any())
                {
                    return;
                }
                var rowsString = _serializer.SerializeRows(rows);
                if (string.IsNullOrWhiteSpace(rowsString))
                {
                    return;
                }
                var tableFilePath = GetTableFilePath(tableName);
#pragma warning disable 4014
                // Fire And Forget
                _cacheProvider.BulkInsertAsync(tableName, rows);
#pragma warning restore 4014
                File.AppendAllText(tableFilePath, rowsString);
            });
        }