本文整理汇总了C#中TablePayloadFormat.ToString方法的典型用法代码示例。如果您正苦于以下问题:C# TablePayloadFormat.ToString方法的具体用法?C# TablePayloadFormat.ToString怎么用?C# TablePayloadFormat.ToString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TablePayloadFormat
的用法示例。
在下文中一共展示了TablePayloadFormat.ToString方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DoSingleEntityReplaceFail
private void DoSingleEntityReplaceFail(TablePayloadFormat format)
{
CloudTableClient tableClient = GenerateCloudTableClient();
TableServiceContext ctx = tableClient.GetTableServiceContext();
TableServiceContext secondContext = tableClient.GetTableServiceContext();
SetPayloadFormatOnDataServiceContext(ctx, format, tableClient);
SetPayloadFormatOnDataServiceContext(secondContext, format, tableClient);
// Insert Entity
BaseEntity baseEntity = new BaseEntity("insert test", "foo" + format.ToString());
baseEntity.Randomize();
ctx.AddObject(currentTable.Name, baseEntity);
ctx.SaveChangesWithRetries();
string etag = ctx.Entities.First().ETag;
baseEntity.A = "updated";
ctx.UpdateObject(baseEntity);
ctx.SaveChangesWithRetries();
MergeEntity replaceEntity = new MergeEntity(baseEntity.PartitionKey, baseEntity.RowKey);
replaceEntity.Randomize();
secondContext.AttachTo(currentTable.Name, replaceEntity, etag);
secondContext.UpdateObject(replaceEntity);
OperationContext opContext = new OperationContext();
try
{
secondContext.SaveChangesWithRetries(SaveChangesOptions.ReplaceOnUpdate, null, opContext);
Assert.Fail();
}
catch (StorageException)
{
TestHelper.ValidateResponse(opContext,
1,
(int)HttpStatusCode.PreconditionFailed,
new string[] { "UpdateConditionNotSatisfied", "ConditionNotMet" },
new string[] { "The update condition specified in the request was not satisfied.", "The condition specified using HTTP conditional header(s) is not met." });
}
ctx.DeleteObject(baseEntity);
ctx.SaveChangesWithRetries();
opContext = new OperationContext();
// try merging with deleted entity
try
{
secondContext.SaveChangesWithRetries(SaveChangesOptions.None, null, opContext);
Assert.Fail();
}
catch (StorageException)
{
TestHelper.ValidateResponse(opContext, 1, (int)HttpStatusCode.NotFound, new string[] { "ResourceNotFound" }, "The specified resource does not exist.");
}
}
示例2: DoBatchInsert
private void DoBatchInsert(TablePayloadFormat format)
{
CloudTableClient tableClient = GenerateCloudTableClient();
TableServiceContext ctx = tableClient.GetTableServiceContext();
SetPayloadFormatOnDataServiceContext(ctx, format, tableClient);
// Insert Entities
SortedDictionary<string, ComplexEntity> entities = new SortedDictionary<string, ComplexEntity>();
for (int i = 0; i < 100; i++)
{
ComplexEntity insertEntity = new ComplexEntity("insert test" + format.ToString(), "foo" + format.ToString() + i);
entities.Add(insertEntity.RowKey, insertEntity);
ctx.AddObject(currentTable.Name, insertEntity);
}
DataServiceResponse response = ctx.SaveChangesWithRetries(SaveChangesOptions.Batch);
Assert.AreEqual((int)HttpStatusCode.Accepted, response.BatchStatusCode);
// Retrieve Entities
List<ComplexEntity> retrievedEntities = (from ent in ctx.CreateQuery<ComplexEntity>(currentTable.Name)
where ent.PartitionKey == entities.First().Value.PartitionKey
select ent).AsTableServiceQuery(ctx).Execute().ToList();
Assert.AreEqual(entities.Count, retrievedEntities.Count);
foreach (ComplexEntity retrievedEntity in retrievedEntities)
{
ComplexEntity.AssertEquality(entities[retrievedEntity.RowKey], retrievedEntity);
entities.Remove(retrievedEntity.RowKey);
}
Assert.AreEqual(0, entities.Count);
}
示例3: DoSingleEntityInsertDeleteFail
private void DoSingleEntityInsertDeleteFail(TablePayloadFormat format)
{
CloudTableClient tableClient = GenerateCloudTableClient();
TableServiceContext ctx = tableClient.GetTableServiceContext();
SetPayloadFormatOnDataServiceContext(ctx, format, tableClient);
// Delete Entity that does not exits
ComplexEntity deleteEntity = new ComplexEntity("insert test", "foo" + format.ToString());
ctx.AttachTo(currentTable.Name, deleteEntity, "*");
ctx.DeleteObject(deleteEntity);
OperationContext opContext = new OperationContext();
try
{
ctx.SaveChangesWithRetries(SaveChangesOptions.None, null, opContext);
Assert.Fail();
}
catch (StorageException)
{
TestHelper.ValidateResponse(opContext, 1, (int)HttpStatusCode.NotFound, new string[] { "ResourceNotFound" }, "The specified resource does not exist.");
}
ctx = tableClient.GetTableServiceContext();
TableServiceContext ctx2 = tableClient.GetTableServiceContext();
SetPayloadFormatOnDataServiceContext(ctx2, format, tableClient);
// Insert Entity
ComplexEntity insertEntity = new ComplexEntity("insert test", "foo" + format.ToString());
ctx.AddObject(currentTable.Name, insertEntity);
ctx.SaveChangesWithRetries();
// Update Entity
ComplexEntity retrievedEntity = (from ent in ctx2.CreateQuery<ComplexEntity>(currentTable.Name)
where ent.PartitionKey == insertEntity.PartitionKey
&& ent.RowKey == insertEntity.RowKey
select ent).AsTableServiceQuery(ctx2).Execute().FirstOrDefault();
retrievedEntity.String = "updated value";
ctx2.UpdateObject(retrievedEntity);
ctx2.SaveChangesWithRetries();
// Now delete old reference with stale etag and validate exception
ctx.DeleteObject(insertEntity);
opContext = new OperationContext();
try
{
ctx.SaveChangesWithRetries(SaveChangesOptions.None, null, opContext);
Assert.Fail();
}
catch (StorageException)
{
TestHelper.ValidateResponse(opContext,
1,
(int)HttpStatusCode.PreconditionFailed,
new string[] { "UpdateConditionNotSatisfied", "ConditionNotMet" },
new string[] { "The update condition specified in the request was not satisfied.", "The condition specified using HTTP conditional header(s) is not met." });
}
}
示例4: DoSingleEntityReplace
private void DoSingleEntityReplace(TablePayloadFormat format)
{
CloudTableClient tableClient = GenerateCloudTableClient();
TableServiceContext ctx = tableClient.GetTableServiceContext();
TableServiceContext queryContext = tableClient.GetTableServiceContext();
SetPayloadFormatOnDataServiceContext(ctx, format, tableClient);
SetPayloadFormatOnDataServiceContext(queryContext, format, tableClient);
// Insert Entity
BaseEntity baseEntity = new BaseEntity("insert test", "foo" + format.ToString());
baseEntity.Randomize();
ctx.AddObject(currentTable.Name, baseEntity);
ctx.SaveChangesWithRetries();
string etag = ctx.Entities.First().ETag;
ctx.Detach(baseEntity);
MergeEntity replaceEntity = new MergeEntity(baseEntity.PartitionKey, baseEntity.RowKey);
replaceEntity.Randomize();
ctx.AttachTo(currentTable.Name, replaceEntity, etag);
ctx.UpdateObject(replaceEntity);
ctx.SaveChangesWithRetries(SaveChangesOptions.ReplaceOnUpdate);
// Retrieve Entity
UnionEnitity retrievedEntity = (from ent in queryContext.CreateQuery<UnionEnitity>(currentTable.Name)
where ent.PartitionKey == baseEntity.PartitionKey
&& ent.RowKey == baseEntity.RowKey
select ent).AsTableServiceQuery(queryContext).Execute().FirstOrDefault();
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(null, retrievedEntity.A);
Assert.AreEqual(null, retrievedEntity.B);
Assert.AreEqual(null, retrievedEntity.C);
Assert.AreEqual(replaceEntity.D, retrievedEntity.D);
Assert.AreEqual(replaceEntity.E, retrievedEntity.E);
Assert.AreEqual(replaceEntity.F, retrievedEntity.F);
}
示例5: DoSingleEntityInsertConflict
private void DoSingleEntityInsertConflict(TablePayloadFormat format)
{
CloudTableClient tableClient = GenerateCloudTableClient();
TableServiceContext ctx = tableClient.GetTableServiceContext();
SetPayloadFormatOnDataServiceContext(ctx, format, tableClient);
// Insert Entity
ComplexEntity insertEntity = new ComplexEntity("insert test", "foo" + format.ToString());
ctx.AddObject(currentTable.Name, insertEntity);
ctx.SaveChangesWithRetries();
// Attempt Insert Conflict Entity
TableServiceContext ctx2 = tableClient.GetTableServiceContext();
ComplexEntity conflictEntity = new ComplexEntity("insert test", "foo" + format.ToString());
ctx2.AddObject(currentTable.Name, insertEntity);
OperationContext opContext = new OperationContext();
try
{
ctx2.SaveChangesWithRetries(SaveChangesOptions.None, null, opContext);
Assert.Fail();
}
catch (StorageException)
{
TestHelper.ValidateResponse(opContext, 1, (int)HttpStatusCode.Conflict, new string[] { "EntityAlreadyExists" }, "The specified entity already exists");
}
}
示例6: DoSingleEntityInsertOrMerge
private void DoSingleEntityInsertOrMerge(TablePayloadFormat format)
{
CloudTableClient tableClient = GenerateCloudTableClient();
TableServiceContext ctx = tableClient.GetTableServiceContext();
TableServiceContext queryContext = tableClient.GetTableServiceContext();
SetPayloadFormatOnDataServiceContext(ctx, format, tableClient);
SetPayloadFormatOnDataServiceContext(queryContext, format, tableClient);
// Insert Entity
BaseEntity baseEntity = new BaseEntity("insert test", "foo" + format.ToString());
// Insert Or Merge with no pre-existing entity
MergeEntity insertOrMergeEntity = new MergeEntity(baseEntity.PartitionKey, baseEntity.RowKey);
insertOrMergeEntity.Randomize();
ctx.AttachTo(currentTable.Name, insertOrMergeEntity, null);
ctx.UpdateObject(insertOrMergeEntity);
ctx.SaveChangesWithRetries();
ctx.Detach(insertOrMergeEntity);
// Retrieve Entity & Verify Contents
UnionEnitity retrievedEntity = (from ent in queryContext.CreateQuery<UnionEnitity>(currentTable.Name)
where ent.PartitionKey == baseEntity.PartitionKey
&& ent.RowKey == baseEntity.RowKey
select ent).AsTableServiceQuery(ctx).Execute().FirstOrDefault();
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(insertOrMergeEntity.D, retrievedEntity.D);
Assert.AreEqual(insertOrMergeEntity.E, retrievedEntity.E);
Assert.AreEqual(insertOrMergeEntity.F, retrievedEntity.F);
UnionEnitity mergedEntity = new UnionEnitity("insert test", "foo" + format.ToString());
mergedEntity.Randomize();
mergedEntity.D = insertOrMergeEntity.D;
mergedEntity.E = insertOrMergeEntity.E;
mergedEntity.F = insertOrMergeEntity.F;
ctx.AttachTo(currentTable.Name, mergedEntity, null);
ctx.UpdateObject(mergedEntity);
ctx.SaveChangesWithRetries();
ctx.Detach(mergedEntity);
// Retrieve Entity & Verify
retrievedEntity = (from ent in queryContext.CreateQuery<UnionEnitity>(currentTable.Name)
where ent.PartitionKey == baseEntity.PartitionKey
&& ent.RowKey == baseEntity.RowKey
select ent).AsTableServiceQuery(queryContext).Execute().FirstOrDefault();
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(mergedEntity.A, retrievedEntity.A);
Assert.AreEqual(mergedEntity.B, retrievedEntity.B);
Assert.AreEqual(mergedEntity.C, retrievedEntity.C);
Assert.AreEqual(mergedEntity.D, retrievedEntity.D);
Assert.AreEqual(mergedEntity.E, retrievedEntity.E);
Assert.AreEqual(mergedEntity.F, retrievedEntity.F);
}
示例7: DoTableBatchReplaceFailAsync
private async Task DoTableBatchReplaceFailAsync(TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
// Insert Entity
DynamicTableEntity baseEntity = new DynamicTableEntity("merge test", "foo" + format.ToString());
baseEntity.Properties.Add("prop1", new EntityProperty("value1"));
await currentTable.ExecuteAsync(TableOperation.Insert(baseEntity));
string staleEtag = baseEntity.ETag;
// update entity to rev etag
baseEntity.Properties["prop1"].StringValue = "updated value";
await currentTable.ExecuteAsync(TableOperation.Replace(baseEntity));
OperationContext opContext = new OperationContext();
try
{
// Attempt a merge with stale etag
DynamicTableEntity replaceEntity = new DynamicTableEntity(baseEntity.PartitionKey, baseEntity.RowKey) { ETag = staleEtag };
replaceEntity.Properties.Add("prop2", new EntityProperty("value2"));
TableBatchOperation batch = new TableBatchOperation();
batch.Replace(replaceEntity);
await currentTable.ExecuteBatchAsync(batch, null, opContext);
Assert.Fail();
}
catch (Exception)
{
TestHelper.ValidateResponse(opContext,
1,
(int)HttpStatusCode.PreconditionFailed,
new string[] { "UpdateConditionNotSatisfied", "ConditionNotMet" },
new string[] { "The update condition specified in the request was not satisfied.", "The condition specified using HTTP conditional header(s) is not met." });
}
// Delete Entity
await currentTable.ExecuteAsync(TableOperation.Delete(baseEntity));
opContext = new OperationContext();
// try replacing with deleted entity
try
{
DynamicTableEntity replaceEntity = new DynamicTableEntity(baseEntity.PartitionKey, baseEntity.RowKey) { ETag = baseEntity.ETag };
replaceEntity.Properties.Add("prop2", new EntityProperty("value2"));
TableBatchOperation batch = new TableBatchOperation();
batch.Replace(replaceEntity);
await currentTable.ExecuteBatchAsync(batch, null, opContext);
Assert.Fail();
}
catch (Exception)
{
TestHelper.ValidateResponse(opContext, 1, (int)HttpStatusCode.NotFound, new string[] { "ResourceNotFound" }, "The specified resource does not exist.");
}
}
示例8: DoSingleEntityInsert
private void DoSingleEntityInsert(TablePayloadFormat format)
{
CloudTableClient tableClient = GenerateCloudTableClient();
TableServiceContext ctx = tableClient.GetTableServiceContext();
SetPayloadFormatOnDataServiceContext(ctx, format, tableClient);
// Insert Entity
ComplexEntity insertEntity = new ComplexEntity("insert test", "foo" + format.ToString());
ctx.AddObject(currentTable.Name, insertEntity);
ctx.SaveChangesWithRetries();
// Retrieve Entity
ComplexEntity retrievedEntity = (from ent in ctx.CreateQuery<ComplexEntity>(currentTable.Name)
where ent.PartitionKey == insertEntity.PartitionKey
&& ent.RowKey == insertEntity.RowKey
select ent).AsTableServiceQuery(ctx).Execute().FirstOrDefault();
Assert.IsNotNull(retrievedEntity);
ComplexEntity.AssertEquality(insertEntity, retrievedEntity);
}
示例9: DoTableBatchInsertOrReplaceAsync
private async Task DoTableBatchInsertOrReplaceAsync(TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
// Insert Or Replace with no pre-existing entity
DynamicTableEntity insertOrReplaceEntity = new DynamicTableEntity("insertOrReplace entity", "foo" + format.ToString());
insertOrReplaceEntity.Properties.Add("prop1", new EntityProperty("value1"));
TableBatchOperation batch = new TableBatchOperation();
batch.InsertOrReplace(insertOrReplaceEntity);
await currentTable.ExecuteBatchAsync(batch);
// Retrieve Entity & Verify Contents
TableResult result = await currentTable.ExecuteAsync(TableOperation.Retrieve(insertOrReplaceEntity.PartitionKey, insertOrReplaceEntity.RowKey));
DynamicTableEntity retrievedEntity = result.Result as DynamicTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(insertOrReplaceEntity.Properties.Count, retrievedEntity.Properties.Count);
DynamicTableEntity replaceEntity = new DynamicTableEntity(insertOrReplaceEntity.PartitionKey, insertOrReplaceEntity.RowKey);
replaceEntity.Properties.Add("prop2", new EntityProperty("value2"));
TableBatchOperation batch2 = new TableBatchOperation();
batch2.InsertOrReplace(replaceEntity);
await currentTable.ExecuteBatchAsync(batch2);
// Retrieve Entity & Verify Contents
result = await currentTable.ExecuteAsync(TableOperation.Retrieve(insertOrReplaceEntity.PartitionKey, insertOrReplaceEntity.RowKey));
retrievedEntity = result.Result as DynamicTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(1, retrievedEntity.Properties.Count);
Assert.AreEqual(replaceEntity.Properties["prop2"], retrievedEntity.Properties["prop2"]);
}
示例10: DoTableBatchReplaceAsync
private async Task DoTableBatchReplaceAsync(TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
// Insert Entity
DynamicTableEntity baseEntity = new DynamicTableEntity("merge test", "foo" + format.ToString());
baseEntity.Properties.Add("prop1", new EntityProperty("value1"));
await currentTable.ExecuteAsync(TableOperation.Insert(baseEntity));
// ReplaceEntity
DynamicTableEntity replaceEntity = new DynamicTableEntity(baseEntity.PartitionKey, baseEntity.RowKey) { ETag = baseEntity.ETag };
replaceEntity.Properties.Add("prop2", new EntityProperty("value2"));
TableBatchOperation batch = new TableBatchOperation();
batch.Replace(replaceEntity);
await currentTable.ExecuteBatchAsync(batch);
// Retrieve Entity & Verify Contents
TableResult result = await currentTable.ExecuteAsync(TableOperation.Retrieve(baseEntity.PartitionKey, baseEntity.RowKey));
DynamicTableEntity retrievedEntity = result.Result as DynamicTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(replaceEntity.Properties.Count, retrievedEntity.Properties.Count);
Assert.AreEqual(replaceEntity.Properties["prop2"], retrievedEntity.Properties["prop2"]);
}
示例11: DoTableBatchInsertOrReplaceEncryption
private void DoTableBatchInsertOrReplaceEncryption(TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
// Create the Key to be used for wrapping.
SymmetricKey aesKey = new SymmetricKey("symencryptionkey");
TableRequestOptions options = new TableRequestOptions()
{
EncryptionPolicy = new TableEncryptionPolicy(aesKey, null),
EncryptionResolver = (pk, rk, propName) =>
{
if (propName == "A" || propName == "B")
{
return true;
}
return false;
}
};
// Insert Or Replace with no pre-existing entity
DynamicTableEntity insertOrReplaceEntity = new DynamicTableEntity("insertOrReplace entity", "foo" + format.ToString());
insertOrReplaceEntity.Properties.Add("A", new EntityProperty("a"));
TableBatchOperation batch = new TableBatchOperation();
batch.InsertOrReplace(insertOrReplaceEntity);
currentTable.ExecuteBatch(batch, options);
// Retrieve Entity & Verify Contents
// Create the resolver to be used for unwrapping.
DictionaryKeyResolver resolver = new DictionaryKeyResolver();
resolver.Add(aesKey);
TableRequestOptions retrieveOptions = new TableRequestOptions() { EncryptionPolicy = new TableEncryptionPolicy(null, resolver) };
TableResult result = currentTable.Execute(TableOperation.Retrieve(insertOrReplaceEntity.PartitionKey, insertOrReplaceEntity.RowKey), retrieveOptions);
DynamicTableEntity retrievedEntity = result.Result as DynamicTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(insertOrReplaceEntity.Properties.Count, retrievedEntity.Properties.Count);
DynamicTableEntity replaceEntity = new DynamicTableEntity(insertOrReplaceEntity.PartitionKey, insertOrReplaceEntity.RowKey);
replaceEntity.Properties.Add("B", new EntityProperty("b"));
TableBatchOperation batch2 = new TableBatchOperation();
batch2.InsertOrReplace(replaceEntity);
currentTable.ExecuteBatch(batch2, options);
// Retrieve Entity & Verify Contents
result = currentTable.Execute(TableOperation.Retrieve(insertOrReplaceEntity.PartitionKey, insertOrReplaceEntity.RowKey), retrieveOptions);
retrievedEntity = result.Result as DynamicTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(1, retrievedEntity.Properties.Count);
Assert.AreEqual(replaceEntity.Properties["B"], retrievedEntity.Properties["B"]);
}
示例12: DoTableBatchOperationWithRetryHasCorrectNumberOfResults
private void DoTableBatchOperationWithRetryHasCorrectNumberOfResults(TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
TableBatchOperation batch = new TableBatchOperation();
for (int i = 0; i < 100; i++)
{
DynamicTableEntity insertEntity = new DynamicTableEntity("retry test", format.ToString() + i.ToString());
insertEntity.Properties.Add("prop", new EntityProperty(new byte[20 * 1024]));
batch.Insert(insertEntity);
}
IList<TableResult> results = null;
TestHelper.ExecuteMethodWithRetry(
3,
new[] {
// Insert upstream network delay to prevent upload to server @ 1000ms / kb
PerformanceBehaviors.InsertUpstreamNetworkDelay(10000,
AzureStorageSelectors.TableTraffic().IfHostNameContains(tableClient.Credentials.AccountName),
new BehaviorOptions(2)),
// After 500 ms return throttle message
DelayedActionBehaviors.ExecuteAfter(Actions.ThrottleTableRequest,
100,
AzureStorageSelectors.TableTraffic().IfHostNameContains(tableClient.Credentials.AccountName),
new BehaviorOptions(2))
},
(options, opContext) => results = currentTable.ExecuteBatch(batch, (TableRequestOptions)options, opContext));
Assert.AreEqual(batch.Count, results.Count);
}
示例13: DoTableOperationInsertOrMerge
private async Task DoTableOperationInsertOrMerge(TablePayloadFormat format)
{
tableClient.PayloadFormat = format;
// Insert Or Merge with no pre-existing entity
DynamicTableEntity insertOrMergeEntity = new DynamicTableEntity("insertOrMerge entity", "foo" + format.ToString());
insertOrMergeEntity.Properties.Add("prop1", new EntityProperty("value1"));
await currentTable.ExecuteAsync(TableOperation.InsertOrMerge(insertOrMergeEntity));
// Retrieve Entity & Verify Contents
TableResult result = await currentTable.ExecuteAsync(TableOperation.Retrieve(insertOrMergeEntity.PartitionKey, insertOrMergeEntity.RowKey));
DynamicTableEntity retrievedEntity = result.Result as DynamicTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(insertOrMergeEntity.Properties.Count, retrievedEntity.Properties.Count);
DynamicTableEntity mergeEntity = new DynamicTableEntity(insertOrMergeEntity.PartitionKey, insertOrMergeEntity.RowKey);
mergeEntity.Properties.Add("prop2", new EntityProperty("value2"));
await currentTable.ExecuteAsync(TableOperation.InsertOrMerge(mergeEntity));
// Retrieve Entity & Verify Contents
result = await currentTable.ExecuteAsync(TableOperation.Retrieve(insertOrMergeEntity.PartitionKey, insertOrMergeEntity.RowKey));
retrievedEntity = result.Result as DynamicTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(2, retrievedEntity.Properties.Count);
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(insertOrMergeEntity.Properties["prop1"], retrievedEntity.Properties["prop1"]);
Assert.AreEqual(mergeEntity.Properties["prop2"], retrievedEntity.Properties["prop2"]);
}
示例14: DoTableOperationMergeSync
private void DoTableOperationMergeSync(TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
// Insert Entity
DynamicTableEntity baseEntity = new DynamicTableEntity("merge test", "foo" + format.ToString());
baseEntity.Properties.Add("prop1", new EntityProperty("value1"));
currentTable.Execute(TableOperation.Insert(baseEntity));
DynamicTableEntity mergeEntity = new DynamicTableEntity(baseEntity.PartitionKey, baseEntity.RowKey) { ETag = baseEntity.ETag };
mergeEntity.Properties.Add("prop2", new EntityProperty("value2"));
currentTable.Execute(TableOperation.Merge(mergeEntity));
// Retrieve Entity & Verify Contents
TableResult result = currentTable.Execute(TableOperation.Retrieve(baseEntity.PartitionKey, baseEntity.RowKey));
DynamicTableEntity retrievedEntity = result.Result as DynamicTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(2, retrievedEntity.Properties.Count);
Assert.AreEqual(baseEntity.Properties["prop1"], retrievedEntity.Properties["prop1"]);
Assert.AreEqual(mergeEntity.Properties["prop2"], retrievedEntity.Properties["prop2"]);
}
示例15: DoTableBatchRetrieveAsync
private async Task DoTableBatchRetrieveAsync(TablePayloadFormat payloadFormat)
{
if (payloadFormat == TablePayloadFormat.JsonNoMetadata)
{
// Entities not resolved correctly for no metadata JSON.
return;
}
tableClient.DefaultRequestOptions.PayloadFormat = payloadFormat;
string pk = Guid.NewGuid().ToString();
// Add insert
DynamicTableEntity sendEnt = new DynamicTableEntity();
sendEnt.Properties.Add("foo", new EntityProperty("bar" + payloadFormat.ToString()));
sendEnt.PartitionKey = pk;
sendEnt.RowKey = Guid.NewGuid().ToString();
// generate a set of properties for all supported Types
sendEnt.Properties = new ComplexEntity().WriteEntity(null);
// not found
TableResult result = await currentTable.ExecuteAsync(TableOperation.Retrieve(sendEnt.PartitionKey, sendEnt.RowKey));
Assert.AreEqual(result.HttpStatusCode, (int)HttpStatusCode.NotFound);
Assert.IsNull(result.Result);
Assert.IsNull(result.Etag);
// insert entity
await currentTable.ExecuteAsync(TableOperation.Insert(sendEnt));
// Success
result = await currentTable.ExecuteAsync(TableOperation.Retrieve(sendEnt.PartitionKey, sendEnt.RowKey));
Assert.AreEqual(result.HttpStatusCode, (int)HttpStatusCode.OK);
DynamicTableEntity retrievedEntity = result.Result as DynamicTableEntity;
// Validate entity
Assert.AreEqual(sendEnt.Properties["String"], retrievedEntity.Properties["String"]);
Assert.AreEqual(sendEnt.Properties["Int64"], retrievedEntity.Properties["Int64"]);
Assert.AreEqual(sendEnt.Properties["Int64N"], retrievedEntity.Properties["Int64N"]);
Assert.AreEqual(sendEnt.Properties["LongPrimitive"], retrievedEntity.Properties["LongPrimitive"]);
Assert.AreEqual(sendEnt.Properties["LongPrimitiveN"], retrievedEntity.Properties["LongPrimitiveN"]);
Assert.AreEqual(sendEnt.Properties["Int32"], retrievedEntity.Properties["Int32"]);
Assert.AreEqual(sendEnt.Properties["Int32N"], retrievedEntity.Properties["Int32N"]);
Assert.AreEqual(sendEnt.Properties["IntegerPrimitive"], retrievedEntity.Properties["IntegerPrimitive"]);
Assert.AreEqual(sendEnt.Properties["IntegerPrimitiveN"], retrievedEntity.Properties["IntegerPrimitiveN"]);
Assert.AreEqual(sendEnt.Properties["Guid"], retrievedEntity.Properties["Guid"]);
Assert.AreEqual(sendEnt.Properties["GuidN"], retrievedEntity.Properties["GuidN"]);
Assert.AreEqual(sendEnt.Properties["Double"], retrievedEntity.Properties["Double"]);
Assert.AreEqual(sendEnt.Properties["DoubleN"], retrievedEntity.Properties["DoubleN"]);
Assert.AreEqual(sendEnt.Properties["DoublePrimitive"], retrievedEntity.Properties["DoublePrimitive"]);
Assert.AreEqual(sendEnt.Properties["DoublePrimitiveN"], retrievedEntity.Properties["DoublePrimitiveN"]);
Assert.AreEqual(sendEnt.Properties["BinaryPrimitive"], retrievedEntity.Properties["BinaryPrimitive"]);
Assert.AreEqual(sendEnt.Properties["Binary"], retrievedEntity.Properties["Binary"]);
Assert.AreEqual(sendEnt.Properties["BoolPrimitive"], retrievedEntity.Properties["BoolPrimitive"]);
Assert.AreEqual(sendEnt.Properties["BoolPrimitiveN"], retrievedEntity.Properties["BoolPrimitiveN"]);
Assert.AreEqual(sendEnt.Properties["Bool"], retrievedEntity.Properties["Bool"]);
Assert.AreEqual(sendEnt.Properties["BoolN"], retrievedEntity.Properties["BoolN"]);
Assert.AreEqual(sendEnt.Properties["DateTimeOffsetN"], retrievedEntity.Properties["DateTimeOffsetN"]);
Assert.AreEqual(sendEnt.Properties["DateTimeOffset"], retrievedEntity.Properties["DateTimeOffset"]);
Assert.AreEqual(sendEnt.Properties["DateTime"], retrievedEntity.Properties["DateTime"]);
Assert.AreEqual(sendEnt.Properties["DateTimeN"], retrievedEntity.Properties["DateTimeN"]);
}