首页 / 软件开发 / Silverlight / 使用LINQ和ADO.NET创建Silverlight程序
使用LINQ和ADO.NET创建Silverlight程序2011-10-23 51CTO 黄永兵 译在Silverlight中可以创建行业和其它以数据为中心的应用系统,但在Silverlight中处理数据不是一 件容易的事情,由于Silverlight包括许多处理数据和支持Web Service及XML的工具,但这些工具仅代表 跨过防火墙进行数据访问的最基础的部分。常见的数据访问策略是使用Web Service和客户端LINQ共同实现的,如果你正在修改现有Web Service 端点强化你的Silverlight应用程序,那么我推荐你使用这个方法。但如果你在使用Silverlight创建一个 新的Web Service,就没有必要这么做了。对一个典型的Web Service层而言,你在服务器上实现一个传统的数据访问策略(自定义业务对象、 LINQ to SQL、实体框架、Nhibernate等)通过Web Service暴露数据对象,Web Service仅仅是数据访问 策略下面的网关。但为了开启完整的数据连通性,你必须要映射四个数据操作(创建、读取、更新和删除)到Web Service方法,下面是一个简单的支持Product类的service contract,注意我在本文中使用的都是C#。例1 Product Web Service的Service Contract[ServiceContract]
public interface ICustomerService
{
[OperationContract]
List GetAllProducts();
[OperationContract]
Product GetProduct(int productID);
[OperationContract]
List GetAllProductsWithCategories();
[OperationContract]
Product SaveProduct(Product productToSave);
[OperationContract]
void DeleteProduct(Product productToDelete);
}
创建一套服务来处理应用程序完整的数据模型可能是相当费时的,正如这个例子中显示的,特殊特性 的操作可能导致Web Service非常臃肿,换句话说,Web Service将有新的要求和操作要增加,甚至包括不 属于核心业务域的操作。在例1中你看到GetAllProductsWithCategories操作默认用于检索Product和分类。即使添加排序、过 滤和分页机制到这个简单的例子你也不要感到惊讶,如果有一个简单的方法支持数据操作(如查询、排序 、过滤等)不用每次都手动构建这些机制那将是非常吸引人的,ADO.NET Data Service就正是为此而生的 。