【李会军】一步一步学Silverlight 2系列(17):数据与通信之ADO.NET Data Services
概述
Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。
本文将简单介绍在Silverlight 2中如何调用ADO.NET Data Services。
准备知识
由于ADO.NET Data Services是在ASP.NET 3.5 Extensions中,所以在开始本文示例之前,首先要安装一下ASP.NET 3.5 Extensions最新版本,你可以从这里下载。安装完成后,在添加新项对话框中应该能够看到ADO.NET Data Service项:ITPUB个人空间e(]wZ^,wYYsmZ
+lXCY1k"tw0
ADO.NET Data Service允许应用程序把数据以服务的形式公开,这样我们就可以通过浏览器来直接访问数据,它支持开放的业界标准,如AtomPub和JSON。它支 持标准的HTTP动作如POST、GET、PUT、DELETE,用来完成数据的创建、更新、删除和读取。ADO.NET Data Service的知识这里不再多说,大家可以去查看相关的资料。
简单示例
如果大家看了前面三篇文章的话,可能对于下面的这个界面已经很烦了,不过在本文我会仍然采用这个示例进行演示:)
4n(lk9_eB8n^0
ITPUB个人空间 j$F`R3\#Fm ~O
建立完Silverlight 2项目之后,我们在Web项目中添加一个Post类:
public classPost
7i5y W"c O$?7]g0{
cfb5aV`M$a*m1D N0public intId {get;set; }ITPUB个人空间+{#qi @.zA U7^
ITPUB个人空间BgqJ loF-D)U
public stringTitle {get;set; }ITPUB个人空间fA#j Tt
pm~"C7HGJ }0public stringAuthor {get;set; }ITPUB个人空间E%e&_"~o pB@~8u
}
我们用Id作为Post的主键,这里需要添加对于Microsoft.Data.Web.dll程序集的引用,位于<盘符>\ Program Files\Reference Assemblies\Microsoft\Framework\ASP.NET 3.5 Extensions下面,引入命名空间using Microsoft.Data.Web,并且为Id加上[DataWebKey]特性,最终完成后代码应该如下:
public classPostITPUB个人空间`5t:w0Z.|X Fu5n
{
G!DY.N-P0[DataWebKey]
3|'wf9D%`Y6]F0public intId {get;set; }ITPUB个人空间^,r,~2X)e
s h] r$H Im|0public stringTitle {get;set; }
Z8zf2z4qX0
2eBLb9ux/O0public stringAuthor {get;set; }ITPUB个人空间w4U|9Y;}+ofP!e
}
再添加一个Blog类,它有一个返回类型为IQueryable<Post>的属性Posts:
public classBlog
vE_X5ZW6g0X/] W]0{ITPUB个人空间)jZ'I;y$i)I
publicBlog()ITPUB个人空间T@ x:Rc)K:]&h
{
GH a3IFcE-}0_post.Add(newPost{ Id = 1, Title ="一步一步学Silverlight 2系列(13):数据与通信之WebRequest", Author ="TerryLee"});ITPUB个人空间%D V}6F,[k8CQ
_post.Add(newPost{ Id = 2, Title ="一步一步学Silverlight 2系列(12):数据与通信之WebClient", Author ="TerryLee"});
,I}_K(Hrq'h{r0_post.Add(newPost{ Id = 3, Title ="一步一步学Silverlight 2系列(11):数据绑定", Author ="TerryLee"});