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 工程
注意此处要选中Enable.NET RIA Services
二、向 SilverlightClient.Web 工程中添加 Northwind.edmx 实体数据模型
选中 SilverlightClient.Web 工程,快捷键 Ctrl+Shift+A ,在已安装模板列表中选择 Data ,然后选择 ADO.NET Entity Data Model 模板(LINQ to SQL亦可),命名为Northwind.edmx(本示例使用Northwind实例数据库)。
注意:在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
如果要可编辑(CUD)数据,则选中Enable editing,此处只做查询。
单击OK之后,需要重新编译 SilverlightClient.Web 工程(Build or Rebulid)
如果添加 Domain Services Class 时选中了 Enable editing,则会自动生成插入、更新、删除等方法。
四、 SilverlightClient 显示数据
在 SilverlightClinet 工程的 MainPage.xaml 中添加如下代码
在 SilverlightClinet 工程的 MainPage.xaml.cs 中添加如下代码
结果如下:
五、总结
RIA Services 极大程度简化了操作,但是在数据绑定时候有些繁琐,个人感觉不如ASP.NET中使用ADO.NET数据服务便捷,可以使用ObjectContext。