var tableClient = CloudStorageAccount.Parse(_ConnectionString).CreateCloudTableClient(new TableClientConfiguration());
var table = tableClient.GetTableReference("table1");
//InsertOrReplace
var sampleObject = new User("CLASSA", "DATAKEY1")
{
Name = "DONMA1-INSERTUPDATE",
Age = 1,
Meta = "META-INSERTUPDATE",
Create = new DateTime(2001, 1, 1).AddDays(1),
LastLoginDate = DateTime.Now
};
table.Execute(TableOperation.InsertOrReplace(sampleObject));
//Read Data After InsertOrReplace
Console.WriteLine("------ Read Data After InsertOrReplace ------");
var data1 = table.Execute(TableOperation.Retrieve("CLASSA", "DATAKEY1")).Result;
Console.WriteLine(JsonConvert.SerializeObject(data1));
Console.WriteLine("\r\n\r\n\r\n");
//InsertOrMerge
var sampleObject2 = new User("CLASSA", "DATAKEY1")
{
Name = "DONMA1-INSERTORMERGE",
Age = null, //刻意放 null 測試
Meta = null, //刻意放 null 測試
Create = new DateTime(2020, 1, 1).AddDays(1),
LastLoginDate = null //刻意放 null 測試
};
table.Execute(TableOperation.InsertOrMerge(sampleObject2));
//Read Data After InsertOrMerge
Console.WriteLine("------ Read Data After InsertOrMerge ------");
var data2 = table.Execute(TableOperation.Retrieve("CLASSA", "DATAKEY1")).Result;
Console.WriteLine(JsonConvert.SerializeObject(data2));
//Result:
// ------ Read Data After InsertOrReplace ------
//{"Name":"DONMA1-INSERTUPDATE","Age":1,"Create":"2001-01-01T16:00:00Z","Friends":[],"Meta":"META-INSERTUPDATE","LastLoginDate":"2021-01-06T01:58:46.1801935Z","PartitionKey":"CLASSA","RowKey":"DATAKEY1","Timestamp":"2021-01-06T09:58:07.4542422+08:00","ETag":"W/\"datetime'2021-01-06T01%3A58%3A07.4542422Z'\""}
//------ Read Data After InsertOrMerge ------
//{"Name":"DONMA1-INSERTORMERGE","Age":1,"Create":"2020-01-01T16:00:00Z","Friends":[],"Meta":"META-INSERTUPDATE","LastLoginDate":"2021-01-06T01:58:46.1801935Z","PartitionKey":"CLASSA","RowKey":"DATAKEY1","Timestamp":"2021-01-06T09:58:07.7934816+08:00","ETag":"W/\"datetime'2021-01-06T01%3A58%3A07.7934816Z'\""}
public class User : Microsoft.Azure.Cosmos.Table.TableEntity
{
public string Name { get; set; }
public int? Age { get; set; }
public DateTime Create { get; set; }
public List Friends { get; set; }
public string Meta { get; set; }
public DateTime? LastLoginDate { get; set; }
public User()
{
Friends = new List();
}
public User(string classId, string userId)
{
PartitionKey = classId;
RowKey = userId;
Friends = new List();
}
}
Result:
------ Read Data After InsertOrReplace ------
{"Name":"DONMA1-INSERTUPDATE
","Age":1,"Create":"2001-01-01T16:00:00Z","Friends":[],"Meta":"META-INSERTUPDATE","LastLoginDate":"2021-01-06T01:58:46.1801935Z","PartitionKey":"CLASSA","RowKey":"DATAKEY1","Timestamp":"
2021-01-06T09:58:07.4542422+08:00","ETag":"W/\"datetime'2021-01-06T01%3A58%3A07.4542422Z'\""}
------ Read Data After InsertOrMerge ------
{"Name":"
DONMA1-INSERTORMERGE","Age":1,"Create":"2020-01-01T16:00:00Z","Friends":[],"Meta":"META-INSERTUPDATE","LastLoginDate":"2021-01-06T01:58:46.1801935Z","PartitionKey":"CLASSA","RowKey":"DATAKEY1","Timestamp":"
2021-01-06T09:58:07.7934816+08:00","ETag":"W/\"datetime'2021-01-06T01%3A58%3A07.7934816Z'\""}