操作如下:在Visual Studio中选中的你的项目,然后右键,点击”Create Test Storage Tables”
如下图:
之后会显示下面的提示框表示表已经成功创建了。
你可以查看Visual Studio的输出窗口:
你会发现Visual Studio使用了SDK中的命令行工具DevtableGen.exe,执行了下面的命令:
C:\Program Files\Windows Azure SDK\v1.0\bin\DevtableGen.exe" /forceCreate "/server:localhost\SQLExpress" "/database:WorkingWithTables" "obj\Debug\WorkingWithTables_WebRole\bin\StorageClient.dll;obj\Debug\WorkingWithTables_WebRole\bin\WorkingWithTables_WebRole.dll;
C:\myProject\WorkingWithTables\WorkingWithTables\WorkingWithTables_WorkerRole\bin\Debug\StorageClient.dll;
C:\myProject\WorkingWithTables\WorkingWithTables\WorkingWithTables_WorkerRole\bin\Debug\WorkingWithTables_WorkerRole.dll"
我们不妨到数据库中看一下建立的这个数据库和表
最后我们在WebRole中增加一些代码,来存取访问表存储的简单代码
查询和数据绑定
2:
3: {
4:
5: string statusMessage = String.Empty;
6:
7: try
8:
9: {
10:
11: StorageAccountInfo accountInfo = StorageAccountInfo.GetAccountInfoFromConfiguration("TableStorageEndpoint");
12:
13: // dynamically create the tables
14:
15: TableStorage.CreateTablesFromModel(typeof(MessageDataServiceContext), accountInfo);
16:
17: MessageDataServiceContext context = new MessageDataServiceContext(accountInfo);
18:
19: this.messageList.DataSource = context.Messages.Take(10);
20:
21: this.messageList.DataBind();
22:
23: }
24:
25: catch (DataServiceRequestException ex)
26:
27: {
28:
29: statusMessage = "Unable to connect to the table storage server. Please check that the service is running.<br>"
30:
31: + ex.Message;
32:
向表存储中增加记录
2:
3: {
4:
5: StorageAccountInfo accountInfo = StorageAccountInfo.GetAccountInfoFromConfiguration("TableStorageEndpoint");
6:
7: MessageDataServiceContext context = new MessageDataServiceContext(accountInfo);
8:
9: context.AddMessage(this.nameBox.Text, this.messageBox.Text);
10:
11: }
12:
F5 运行后,先检查开发环境中的表存储服务是否启动。
运行成功之后,我们还可以看一下SQL Server 数据库中的情况,比如Azure 开发环境对ParitionKey 和RowKey的理解和赋值情况
通过上面的体验,我们发现Azure的表存储的定义和操作,与传统的表定义和操作还是有些不同,另外在编程体验上基本上完全整合了ADO.NET Data Service和ADO.NET Entry Framework的风格和技术。
不过我们需要有比较清晰的概念和理解,就是目前Windows Azure 可能实现的是ADO.NET Data Service和ADO.NET Entry Framework的一个子集,如果对ADO.NET Entry Framework比较熟悉的,可能非常想知道ADO.NET Entry Framework的特性有多少在Azure上实现了,这个需要我们在之后慢慢探索。
最后花一点时间,讨论一下Jim Nakashima的文章Windows Azure Walkthrough: Simple Table Storage中的要点,也就是在真正部署到正事Windows Azure运行环境时,比较流行的方法是使用上面讲的第二种方式,就是运行时刻创建表存储,而且最好是只创建一次。这个文章中讲了,主要是使用TableStorage.CreateTablesFromModel方法来实现。Jim解释说在运行环境下建表过程是程序化完成的,但是在Azure 的开发环境(Local Development Storage)使用工具预先建立表示必须的步骤,这是Azure 的开发环境的限制。 我想这非常可能是在Widnows Azure 的运行环境中,表存储不是简单理解成在某个一个SQL数据库上建立一个表这么简单,可能其过程是非常复杂和神奇的。 而Mark Seemann给出了使用 另外一方法,就是用PowerShell的方法在Azure 运行环境创建表,基本上就是用Shell 脚本调用TableStorage.CreateTablesFromModel方法。