|
@@ -373,14 +373,26 @@ namespace TEAMModelOS.SDK.Module.AzureTable.Implements
|
|
foreach (string key in dict.Keys)
|
|
foreach (string key in dict.Keys)
|
|
{
|
|
{
|
|
List<T> values = dict[key];
|
|
List<T> values = dict[key];
|
|
- Parallel.ForEach(Partitioner.Create(0, values.Count, 100),
|
|
|
|
- async range =>
|
|
|
|
- {
|
|
|
|
- TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
- for (Int32 i = range.Item1; i < range.Item2; i++)
|
|
|
|
- batchOperation.Insert(values[i]);
|
|
|
|
- result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
- });
|
|
|
|
|
|
+ //Parallel.ForEach(Partitioner.Create(0, values.Count, 100),
|
|
|
|
+ // async range =>
|
|
|
|
+ // {
|
|
|
|
+ // TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
+ // for (Int32 i = range.Item1; i < range.Item2; i++)
|
|
|
|
+ // batchOperation.Insert(values[i]);
|
|
|
|
+ // result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
+ // });
|
|
|
|
+ int pageSize = 100;
|
|
|
|
+ int pages = (int)Math.Ceiling((double)values.Count / pageSize);
|
|
|
|
+ for (int i = 0; i < pages; i++)
|
|
|
|
+ {
|
|
|
|
+ List<T> lists = values.Skip((i) * pageSize).Take(pageSize).ToList();
|
|
|
|
+ TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
+ for (int j = 0; j < lists.Count; j++)
|
|
|
|
+ {
|
|
|
|
+ batchOperation.Insert(lists[j]);
|
|
|
|
+ }
|
|
|
|
+ result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return entitys;
|
|
return entitys;
|
|
@@ -409,14 +421,26 @@ namespace TEAMModelOS.SDK.Module.AzureTable.Implements
|
|
foreach (string key in dict.Keys)
|
|
foreach (string key in dict.Keys)
|
|
{
|
|
{
|
|
List<T> values = dict[key];
|
|
List<T> values = dict[key];
|
|
- Parallel.ForEach(Partitioner.Create(0, values.Count, 100),
|
|
|
|
- async range =>
|
|
|
|
- {
|
|
|
|
- TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
- for (Int32 i = range.Item1; i < range.Item2; i++)
|
|
|
|
- batchOperation.Replace(values[i]);
|
|
|
|
- result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
- });
|
|
|
|
|
|
+ //Parallel.ForEach(Partitioner.Create(0, values.Count, 100),
|
|
|
|
+ // async range =>
|
|
|
|
+ // {
|
|
|
|
+ // TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
+ // for (Int32 i = range.Item1; i < range.Item2; i++)
|
|
|
|
+ // batchOperation.Replace(values[i]);
|
|
|
|
+ // result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
+ // });
|
|
|
|
+ int pageSize = 100;
|
|
|
|
+ int pages = (int)Math.Ceiling((double)values.Count / pageSize);
|
|
|
|
+ for (int i = 0; i < pages; i++)
|
|
|
|
+ {
|
|
|
|
+ List<T> lists = values.Skip((i) * pageSize).Take(pageSize).ToList();
|
|
|
|
+ TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
+ for (int j = 0; j < lists.Count; j++)
|
|
|
|
+ {
|
|
|
|
+ batchOperation.Replace(lists[j]);
|
|
|
|
+ }
|
|
|
|
+ result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return entitys;
|
|
return entitys;
|
|
@@ -445,18 +469,34 @@ namespace TEAMModelOS.SDK.Module.AzureTable.Implements
|
|
foreach (string key in dict.Keys)
|
|
foreach (string key in dict.Keys)
|
|
{
|
|
{
|
|
List<T> values = dict[key];
|
|
List<T> values = dict[key];
|
|
- Parallel.ForEach(Partitioner.Create(0, values.Count, 100),
|
|
|
|
- async range =>
|
|
|
|
- {
|
|
|
|
- TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
- for (Int32 i = range.Item1; i < range.Item2; i++)
|
|
|
|
- batchOperation.InsertOrReplace(values[i]);
|
|
|
|
- result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
- });
|
|
|
|
|
|
+ //Parallel.ForEach(Partitioner.Create(0, values.Count, 50),
|
|
|
|
+ // async range =>
|
|
|
|
+ // {
|
|
|
|
+ // TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
+ // for (Int32 i = range.Item1; i < range.Item2; i++)
|
|
|
|
+ // batchOperation.InsertOrReplace(values[i]);
|
|
|
|
+ // result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
+ // });
|
|
|
|
+
|
|
|
|
+ int pageSize = 100;
|
|
|
|
+ int pages = (int)Math.Ceiling((double)values.Count/ pageSize);
|
|
|
|
+ for (int i= 0; i < pages; i++) {
|
|
|
|
+ List<T> lists= values.Skip((i) * pageSize).Take(pageSize).ToList();
|
|
|
|
+ TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
+ for (int j = 0; j < lists.Count; j++)
|
|
|
|
+ {
|
|
|
|
+ batchOperation.InsertOrReplace(lists[j]);
|
|
|
|
+ }
|
|
|
|
+ result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return entitys;
|
|
return entitys;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
public async Task<List<T>> DeleteAll<T>(List<T> entitys) where T : TableEntity, new()
|
|
public async Task<List<T>> DeleteAll<T>(List<T> entitys) where T : TableEntity, new()
|
|
{
|
|
{
|
|
if (entitys.IsEmpty())
|
|
if (entitys.IsEmpty())
|
|
@@ -480,14 +520,27 @@ namespace TEAMModelOS.SDK.Module.AzureTable.Implements
|
|
foreach (string key in dict.Keys)
|
|
foreach (string key in dict.Keys)
|
|
{
|
|
{
|
|
List<T> values = dict[key];
|
|
List<T> values = dict[key];
|
|
- Parallel.ForEach(Partitioner.Create(0, values.Count, 100),
|
|
|
|
- async range =>
|
|
|
|
- {
|
|
|
|
- TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
- for (Int32 i = range.Item1; i < range.Item2; i++)
|
|
|
|
- batchOperation.Delete(values[i]);
|
|
|
|
- result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
- });
|
|
|
|
|
|
+ //Parallel.ForEach(Partitioner.Create(0, values.Count, 100),
|
|
|
|
+ // async range =>
|
|
|
|
+ // {
|
|
|
|
+ // TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
+ // for (Int32 i = range.Item1; i < range.Item2; i++)
|
|
|
|
+ // batchOperation.Delete(values[i]);
|
|
|
|
+ // result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
+ // });
|
|
|
|
+
|
|
|
|
+ int pageSize = 100;
|
|
|
|
+ int pages = (int)Math.Ceiling((double)values.Count / pageSize);
|
|
|
|
+ for (int i = 0; i < pages; i++)
|
|
|
|
+ {
|
|
|
|
+ List<T> lists = values.Skip((i) * pageSize).Take(pageSize).ToList();
|
|
|
|
+ TableBatchOperation batchOperation = new TableBatchOperation();
|
|
|
|
+ for (int j = 0; j < lists.Count; j++)
|
|
|
|
+ {
|
|
|
|
+ batchOperation.Delete(lists[j]);
|
|
|
|
+ }
|
|
|
|
+ result = await tableClient.GetTableReference(TableName).ExecuteBatchAsync(batchOperation);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return entitys;
|
|
return entitys;
|
|
@@ -595,6 +648,5 @@ namespace TEAMModelOS.SDK.Module.AzureTable.Implements
|
|
};
|
|
};
|
|
return pagination;
|
|
return pagination;
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|