-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
72 lines (61 loc) · 1.97 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.Linq;
using Azure;
using Azure.Data.Tables;
namespace play
{
class Program
{
static void Main(string[] args)
{
InsertBatch();
}
private static void InsertBatch()
{
const string tableName = "InsertBatchTestTable";
var client = new TableClient(
"UseDevelopmentStorage=true;",
tableName);
const string partitionKey = "BatchInsertSample";
var entityList = new List<TableEntity>
{
new(partitionKey, "rkey1")
{
{"product", "product1"},
},
new(partitionKey, "rkey2")
{
{"product", "product2"},
}
};
// Create the batch.
var addEntitiesBatch = new List<TableTransactionAction>();
// Add the entities to be added to the batch.
addEntitiesBatch.AddRange(entityList.Select(e =>
new TableTransactionAction(TableTransactionActionType.Add, e)));
// Create table beforehand
client.Create();
try
{
// Submit the batch.
client.SubmitTransaction(addEntitiesBatch);
}
catch (RequestFailedException e)
when (e.Status == 404 && e.ErrorCode == "TableNotFound")
{
// create table
client.Create();
// retry
client.SubmitTransaction(addEntitiesBatch);
}
Console.WriteLine("Inserted!");
var entities = client.Query<TableEntity>();
Console.WriteLine($"Number of records: {entities.Count()}");
foreach (var entity in entities)
{
Console.WriteLine($"{entity.PartitionKey}:{entity.RowKey}");
}
}
}
}