SilverLight使用WCF RIA SERVICE实现对数据库的操作(查询)
时间:2010-12-29 来源:fugitiver
今天群里有朋友提问怎样用SilverLight连接数据库,答应好了下午帮他写个例子,也算给初学SilverLight的朋友们做个入门例子,SL操作数据库最早是用WCF,调用起来有些复杂,后来微软专门为SilverLiver推出了ADO.NET Data Service,现在已经更名为WCF Ria Service,想深入了解的朋友可以参看这方面的资料,我主要给大家做个演示。
1.打开VS2010,添加新建项目/SilverLight应用程序,项目名称我这里命名为YY,单击确定后会弹出对话框,我们勾选上“启用WCF RIA SERVICE服务”,确定。
2.我们在新建好的YY.Web项目右键/添加/新建项/Ado.net实体数据模型,我这里命名为YYedm,确定后在跳出窗口,我们新建连接,或者选择以前使用过的链接,建好链接后,我们在刚刚的窗口里我们选择“是,在连接字符串中保存敏感数据”。下一步,这个窗口里选择想要让SilverLight能访问到的表,我这里只选择“Accounts_Users”表,稍后我会把数据库和源代码上传,确定就可以了。
3.我们会看到一个图表示的界面,这上面表示了数据库表的抽象,默认不需要改,不过,这里要提醒大家,如果需要往数据库里修改或删除数据,数据库表必须有主键,不然不能成功。
4.重新生成YY.Web项目,完成后右键/添加/新建项/Domain Service Class,我这里命名为YYdomain,确定。这是我们会看到对话窗里显示了刚才添加的数据表名称,我们勾选上“Accounts_Users”表,如果想让工具自动生成添加、删除、修改语句就选上Enable Editing选项,这里我们选上这个选项,确定。
5.这时我们会看到很多代码,其实仔细看下都是工具生成的增,查,删,改函数,我们重新生成解决方案。
6.我们选中YY项目,单击显示所有文件图标,图片中间图标,我们会看到项目中多了一个Generated_Code文件夹以及下面的文件,我们打开里面的文件,会看到一些类的定义,包含数据库表的抽象类,最后我们找到YYdomain类,这个类就是我们连接数据库要用到的类,因为它在命名空间YY.Web下,所以我们在MainPage.xaml.cs添加命名空间YY.Web,看代码:

<sdk:DataGrid AutoGenerateColumns="True" Height="268" HorizontalAlignment="Left" Margin="10,10,0,0" Name="daDisplay" VerticalAlignment="Top" Width="347" />
</Grid>
下面是cs代码:

{
YYdomain domain = new YYdomain();
public MainPage()
{
InitializeComponent();
domain.Load(domain.GetAccounts_UsersQuery()).Completed += new EventHandler(GetAccounts_UsersQuery_Completed);
}
void GetAccounts_UsersQuery_Completed(object sender, EventArgs e)
{
daDisplay.ItemsSource = domain.Accounts_Users;
}
}
到这里为止我们就实现了DataGrid显示数据库数据功能,时间不早了,下一篇我会继续讲解添加,修改,删除功能。
本节代码以及数据库下载