2 常规的关系数据库访问
在Silverlight中,要实现对关系数据库的访问,主要是通过服务的方式,包括Web Service和WCF服务等,结合ADO.NET实体数据模型和LINQ to SQL等技术,以下是对这些技术路线的简要说明。
2.1 Web Services
原理:在服务器端(ASP.NET网站)通过 ADO.NET 编码实现数据的增删查改操作,将方法封装为 Web Service 发布;Silverlight 客户端添加 Web Service 引用,在代码中调用服务方法完成数据访问操作。
优点:灵活、数据库兼容性好。
缺点:代码量较大,开发效率低、安全性一般。
2.2 WCF Data Services
原理:在服务器端(ASP.NET网站)通过 ADO.NET Entity Data Model,将 OData (开放式数据协议)数据封装为实体模型(自动生成增删查改方法),然后发布 WCF 服务;Silverlight 客户端添加 WCF 数据服务引用(自动生成实体模型代码),在代码中异步调用方法完成数据访问操作。
在 Silverlight 3 称为 ADO.NET Data Service。
优点:代码量较小,开发效率高、安全性高。
缺点:数据库兼容性一般(默认只能访问SQL Server和Access,访问Oracle、DB2等数据库需要安装第三方插件)、扩展性一般。
2.3 Silverlight-enabled WCF Service
原理:在服务器端(ASP.NET网站)通过 LINQ to SQL ,将数据封装为实体模型(增删查改方法需手动编码),然后通过 Silverlight — enabled WCF Service 发布服务;Silverlight 客户端添加 WCF 服务引用,在代码中异步调用方法完成数据访问操作。
优点:安全性高、扩展性好。
缺点:代码量较大,开发效率底、数据库兼容性差(只能访问SQL Server和Access,即使安装了第三方插件,也不支持)。
2.4 WCF RIA Services
原理:在服务器端(ASP.NET网站)通过 ADO.NET Entity Data Model,将数据封装为实体模型(自动生成增删查改方法),然后通过 Domain Service 发布服务;Silverlight 客户端添加 Domain Service 引用(自动在客户端生成实体类代码—实体模型镜像),在代码中同步调用实体类的方法完成数据访问操作。
优点:代码量很小,开发效率很高、安全性高、扩展性好。
缺点:数据库兼容性一般(默认只能访问SQL Server和Access,访问Oracle、DB2等数据库需要安装第三方插件)。
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240826070647288-243310440.jpg)