我尝试写代码的访问我azure地方发展的储存。我开始通过创建一个新的存储对自己说:

dsInit /forceCreate

我现在可以看到DevelopmentStorageDb20090919在短程用一些预先创建的表如dbo。TableContainer,dbo。TableRow等。

  1. 现在,我可以简单地增加表到这个数据库通过短程(ex。雇员表),并开始访问它们通过代码?这是正确的方式做东西?

例如:

    var svc = CloudStorageAccount.DevelopmentStorageAccount
.CreateCloudTableClient().GetDataServiceContext();

                //"Employees" is the name of the table                
                svc.AddObject("Employees", new Employees("John Doe"));    
                svc.SaveChangesWithRetries();

2.另外,一旦我都做了,我怎么口的表格和数据变为实际的云的帐户吗?通过运行的剧本吗?

有帮助吗?

解决方案

只要该表的存在,是的,您编写的代码将在员工表中添加“ John Doe”。虽然通过SSM查看数据可能会很有趣,并且您可以尝试以这种方式更改数据,但我不建议尝试使用它。开发存储很有趣,而无需用棍子戳它。开发存储与实际云存储之间存在差异,因此我发现您越早停止使用Dev Storage越早。

目前,尚无奇特的方式可以在Azure表之间传输数据(无论是在Dev Storage还是在云中)。它归结为运行一个查询,该查询从源表中选择所有内容,然后将每个项目写入目标表。根据如何分区数据,您可能可以批处理写作,否则您可以并行进行。如果您愿意直接使用REST API,则可以避免存储库在编写每个项目之前必须对其进行挑选。

其他提示

我认为您将Azure Table存储与SQL Server或SQL Azure混淆,这些SQL Server或SQL Azure完全不同。您无法使用SSM访问Azure存储表。您提供的代码示例是使用Azure SDK(使用下面的存储REST API)。这是访问Azure存储的唯一方法。

如果要以更图形的方式创建 /查看表,请尝试Cerebrata的 云存储工作室, ,笨拙的 Azurexplorer, ,大卫·帕尔曼(David Pallman)的 Azure Storage Explorer, ,或其他类似的工具。这些工具都依赖于SDK或直接API调用。

现在,关于您的代码:您需要在插入对象之前创建表。请参阅createtablesfromemel()和createtablefnotexist()。这 Azure平台培训套件 具有用于创建和使用表的出色介绍/实验室,并显示了如何使用createTablesFromosdel()。

即使这是最佳使用Api谈到DevStorage,有可能的情况下直接访问数据库可能证明是有益的。更具体地说,它可用于规避的一些SDK问题特DevStorage.

我曾经遇到的一个问题重新命名的大blob-该行动将只是时间出来(注意,blob不能被重命名-他们首先需要复制使用CopyFromBlob()然后删除)。我试过在蔚蓝的存储资源管理器,并通过编写代码和增加所有的超时。解决方案吗?SQL救援!

这里是一个例子SQL,将重新命名blob内容器或将其转到一个不同的一种:

begin tran

alter table CommittedBlock nocheck constraint BlockBlob_CommittedBlock

update CommittedBlock set BlobName = @TargetBlobName, ContainerName = @TargetContainerName where BlobName = @SourceBlobName and ContainerName = @SourceContainerName
update BlockData set BlobName = @TargetBlobName, ContainerName = @TargetContainerName where BlobName = @SourceBlobName and ContainerName = @SourceContainerName
update Blob set BlobName = @TargetBlobName, ContainerName = @TargetContainerName where BlobName = @SourceBlobName and ContainerName = @SourceContainerName

alter table CommittedBlock with check check constraint BlockBlob_CommittedBlock

rollback tran

当然,使用它在你自己的风险-这是一个 完全 不支持的方式的工作与开发stotage.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top