ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【第3篇】赤手空拳玩转 SQL Data Services(SDS)

【第3篇】赤手空拳玩转 SQL Data Services(SDS)

原创 Linux操作系统 作者:流牛木马 时间:2009-04-28 10:36:50 0 删除 编辑

SDS其实是很友善、很好玩的。这一节我们不会使用任何的编程语言, 流牛木马将带领大家,仅靠SDK里的一个叫做SSDS Explorer小工具来玩转SDS,熟悉和实现上一篇讲述的一些内容。很有趣的哦~

在申请Azure后,经过耐心漫长地等待,你会收到一封叫做“Do Not Delete! Invitation Code to Microsoft .NET Services and Microsoft SQL Services”的邮件。
终于开始了!从邮件中复制出Invitation Code,打开http://portal.ex.azure.microsoft.com/,激活你的SDS

image

激活后,点击右上角的Get Started

image

进入SDS,然后创建一个新的Solution。注意:一个invitation code只能创建一个Solution.

image

然后就来到了.NET SERVICES和SQL SERVICES的管理界面

image

点击顶部的Solution Credentials,修改solution的密码。改成一个自己好记的吧:)

image

好了,现在你已经有了自己好记的Solution名和密码了。

下载SDS的SDK http://www.microsoft.com/downloads/details.aspx?FamilyId=0B1FA5C6-EC9D-440B-939E-481DD05F2627&displaylang=en

安装SDK.

打开安装目录下的SSDS Explorer

image

在这里我们先复习一下上一篇讲的ACE模型。

image

我们的操作顺序也是根据这一模型来的。

首先要建立一个Authority,然后在它下面建立不同的Container,最后再在Container下建立多个同类型或者不同类型的Entity。

还是上一篇的例子,与上图对照,我们可以创建一个叫做"food"的Authority,其下包括名为"fruit"和"vegetable"两个Container.  Container["fruit"]中包括3个实体,分别是"apple1","apple2","pear1".注意,这里我们假设五角星代表pear,三角形代表apple。这样,在这个  Container["fruit"]就包括了两种类型的三个Entity。同样,在Container["vegetable"]中,我们假设圆形是白菜cabbage,方形是西红柿tomato,我们又有了"tomato1","tomato2" ,"cabbage1"三个entity,它们也属于两种不同类型。。

接着我们在复习一下基本操作与HTTP Verb的映射表

HTTP Verb SDS Operation
GET Fetch,Query 查询
POST Create  新建
PUT Update 修改
DELETE Delete  删除

好了,够了,开工!进入SSDE Explorer!!

image

第一步当然是创建Authority.直接点击右边的image 按钮

此时文本框里会出现这样一段

image

中间输入Authority的名字,我这了就叫做food了。输入完成后点击image (因为根据上面的映射表,“新建”操作对应的HTTP Verb是"POST")

此时可能会弹出Credentials对话框,输入刚刚设置的Solution名字和密码即可。

如果操作成功,底部的状态框会出现image 。如果出现的是image ,说明操作有误,请根据错误提示进行更改。

操作成功后,顶部的地址栏会变成

image

对了,这就是这个Authority的URI了。上一篇里说了,对这个Authority的所有操作,其实就是对这个URI的HTTP操作。

现在我们来建立两个叫做"fruit"和"vegetable"的Container

点击image ,在中输入"fruit",此时文本框如下图

image

点击image ,状态栏变成image

地址栏里显示的URI是https://food.data.database.windows.net/v1/fruit,对了,这就是"fruit"这个Container的URI

现在就是在fruit中加入具体的Entity了。(vegetable类似,略)。
我们假设fruit中有两种Entity,
一种是Apple,包括的属性如下:

属性名 Weight Color Availability RecordDate
类型 Decimal String Boolean DateTime

另一种是Pear,包括的属性如下

属性名 Weight IsPopular ProducingArea
类型 Decimal Boolean String

现在我们来添加第一个Apple: "apple1"

由于我们是要在fruit这个container中插入Entity,所以操作时请保持URI为https://food.data.database.windows.net/v1/fruit

点击右边的image

将默认的标签对的名字改为

标签对中输入"apple1"

点击右边的属性区,依次添加属性。属性名就是节点标签名字,请注意更改。

描述属性的节点内有一个叫做"xsi:type"的attribute,表示当前节点的类型。

1.2,定义了一个叫做Weight的String属性,它的值是1.2。

apple1的最终外观如下:

image

同样的方法我们可以添加apple2

image 

再添加Pear类型的pear1

image 

呵呵,这样就添加完了。如果这个时候我想修改 apple1呢?只需要在地址栏中输入https://food.data.database.windows.net/v1/fruit/apple1,点击image ,修改好后再点击image 即可。(PUT对应UPDATE操作) 删除呢?呵,一个硕大的image 出现在底部,就不用我说了吧?

接下来我们就可以使用LINQ来玩弄它了!

基本语法如下
from e in entities [where condition] order by [property] select e

运算符和布尔操作符

image

比如,我们现在可以在地址栏中输入https://food.data.database.windows.net/v1/

在查询框中输入from e in entities where e.Id=="fruit" select e,点击image

此时文本框中就会出现fruit这个Container的内容。简单吧?

让我们循序渐进:
地址栏输入https://food.data.database.windows.net/v1/fruit

查询框输入from e in entities where e.Kind=="Apple" select e,点击image,此时文本框中就会展示出apple1和apple2的内容。image

再来。

执行查询from e in entities where e.Kind=="Apple" && e["Color"]=="Red" select e

则只能看到apple2的内容,因为只有apple2的"Color"等于"Red"

读者走到这里可能有疑问了。为什么是e.Kind和e["Color"]呢?到底是用"."还是用"[]"呢?解释一下,对于Entity的元数据属性(metadata property),需要使用".",如e.Id,e.Kind;对于普通属性,则使用"[]",如e["Color"]

读者可以继续练习更多:

  • from e in entities where e.Kind=="Apple" && (e["Color"]!="Red"||e["Color"]!="Blue") select e  (使用括号)
  • from e in entities where e.Kind=="Apple" && (e["Weight"]>=4) select e (使用表达式)
  • from e in entities where (e["Weight"]>=4) select e(多种Kind的Entity可以混合在一起查询)
  • from e in entities where e["RecordDate"]>="2008-12-15" select e(使用日期)
  • from e in entities select e (取得所有Entity)
  • from e in entities where e.Id>"pea" select e (字符串使用比较符号)

注意: 同一个Kind的Entity可以包含的不同的属性(不推荐)。比如我们可以把apple1中的属性删除掉,完全没有影响。可以执行以下查询进行测试
from e in entities where e["Availability"]==false  && e.Kind=="Apple" select e

怎么样?很简单很有趣吧?

“赤手空拳”与SDS“肉搏"到此为止。在下一篇中,我们将使用C#语言,对以上所有的操作进行编程实现,敬请关注。

原文:http://www.cnblogs.com/azure/archive/2008/12/19/1358695.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21507842/viewspace-592051/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-28

  • 博文量
    13
  • 访问量
    14828