WCF RIA Services (.NET Ria Services)

Posted on 2009-12-07 17:16  Metisria Geo  阅读(4346)  评论(7编辑  收藏  举报

Silverlight要操作数据库,本身却不支持ADO.NET(无法引入System.Data.SqlClient),需要Web服务(WCF+LINQ),用Web服务挺麻烦的,就有了个简化版ADO.NET数据服务(类似WCF,但简单了许多),而ADO.NET数据服务在Silverlight上还是比较繁琐,于是就有了.NET RIA Services -- 更简化版的WCF,RIA Services尚未正式发布,命名也没有最终确定。
有关框架和原理就多介绍了,主要是讲解Silverlight通过WCF RIA Services的简单应用。

系统需求:
Visual Studio 2008 SP1 + Silverlight 3 Tools + WCF RIA Services Beta for Visual Studio 2008 SP1 
-or-
Visual Studio 2010 Beta 2 + Silverlight 4 Tools + WCF RIA Services Preview for Visual Studio 2010
注意:VS2008有语言版本之分,Silverlight 4 Tools 已包含了WCF RIA Services Preview For Visual Studio 2010

一、创建附有 .NET RIA Services 的 Silverlight 应用
在VS中新建 SilverlightClient 工程
image
image
注意此处要选中Enable.NET RIA Services

 

image

二、向 SilverlightClient.Web 工程中添加 Northwind.edmx 实体数据模型
选中 SilverlightClient.Web 工程,快捷键 Ctrl+Shift+A ,在已安装模板列表中选择 Data ,然后选择 ADO.NET Entity Data Model 模板(LINQ to SQL亦可),命名为Northwind.edmx(本示例使用Northwind实例数据库)。

image
image  
注意:在VS2010中使用EMD,必须选中Include foreign key columns in the model
单击Finish之后,需要重新编译 SilverlightClient.Web 工程(Build or Rebulid)

三、向 SilverlightClient.Web 工程中添加 ProductDomainServices
选中 SilverlightClient.Web 工程,快捷键 Ctrl+Shift+A ,在已安装模板列表中选择 Web,然后选择 Domain Services Class 模板,命名为ProductDomainServices.cs
image 
image
如果要可编辑(CUD)数据,则选中Enable editing,此处只做查询。
单击OK之后,需要重新编译 SilverlightClient.Web 工程(Build or Rebulid)
image

如果添加 Domain Services Class 时选中了 Enable editing,则会自动生成插入、更新、删除等方法。

四、 SilverlightClient 显示数据
SilverlightClinet 工程的 MainPage.xaml 中添加如下代码
image

SilverlightClinet 工程的 MainPage.xaml.cs 中添加如下代码
image 
结果如下:
image
五、总结
RIA Services 极大程度简化了操作,但是在数据绑定时候有些繁琐,个人感觉不如ASP.NET中使用ADO.NET数据服务便捷,可以使用ObjectContext。

Copyright © 2024 Metisria Geo
Powered by .NET 8.0 on Kubernetes