WindowsAzure存储中备份模拟运算表

来源:计算机等级考试    发布时间:2012-08-27    计算机等级考试视频    评论

     BackupTableRange建立了一个会扫描指定密钥范围的查询,然后援引下列BackupToContainer。我们使用 BackupEntity类来读取结果。BackupEntity保存了一个内部XElement,XElement名为EntryElement,它将接收到的一个用于实体数据的原始OData XML保存在查询响应中。为了掌握这个原始数据,我们可以使用所示代码中的ReadingEntity事件。ResolveType代表用来提供类型名称,而WCF数据服务客户会使用此类型名称。
///
/// Create a query that will scan the assigned range and save it to a blob in the given container
///
///
///
///
///
///
private static void BackupTableRange(
CloudTableClient tableClient,
CloudBlobContainer container,
string tableName,
PartitionKeyRange range,
string backupId)
{
        TableServiceContext context = tableClient.GetDataServiceContext();
        context.MergeOption = MergeOption.NoTracking;
        context.ResolveType = TableBackup.ResolveType;
        context.ReadingEntity += new EventHandler(TableBackup.OnReadingEntity);
        context.RetryPolicy = RetryPolicies.RetryExponential(5, RetryPolicies.DefaultClientBackoff);
       
        var query = from entity in context.CreateQuery(tableName) select entity;
        if (range.Min != null)
        {
            query = query.Where(entity => entity.PartitionKey.CompareTo(range.Min) >= 0);
        }
 
        if (range.Max != null)
        {
            query = query.Where(entity => entity.PartitionKey.CompareTo(range.Max) < 0);
        }
       
        CloudTableQuery cloudQuery = new CloudTableQuery((DataServiceQuery)query);
 
        BackupToContainer(container, cloudQuery, backupId, range);
}
 
///
/// Entities used for backup/restore
///
[DataServiceKey("PartitionKey", "RowKey")]
public class BackupEntity
{
    public string PartitionKey { get; set; }
 
    public string RowKey { get; set; }
 
    ///
    /// Used during restore to store the entry element.
    ///
    internal XElement EntryElement { get; set; }
}
 
static void OnReadingEntity(object sender, ReadingWritingEntityEventArgs args)
{
     BackupEntity entity = args.Entity as BackupEntity;
     entity.EntryElement = args.Data;
}
 
static Type ResolveType(string entityName)
{
        return typeof(BackupEntity);
}

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答