WCF 附录 高级主题 在WCF中使用LINQ

介绍LINQ技术及其如何简化.NET框架中的数据查询。特别关注LINQ-to-SQL特性,该特性使存储在SQL Server中的数据能够作为对象进行操作,以及如何配置这些实体以便于WCF服务中使用。

语言集成查询(LINQ)是.NET Framework 3.5 中的新技术,允许使用C#或者Visual Studio.NET 来查询数据。传统意义上来说,数据通过在一个应用程序中使用一个字符串表达式查询,比如SQL 或者XPath查询表达式,没有编译时的检查或者智能感知支持。LINQ通过让一条查询成为一个一流语言结构来使用这些能力。LINQ支持多种数据源包括SQL Server数据库,XML文档,ADO.NET DataSets以及.NET对象。LINQ提供一个单一的架构在这些不同的数据源之间查询数据。使用LINQ可以帮助建立数据世界与对象世界的桥梁。

暴露LINQ-to-SQL 实体

LINQ-to-SQL引用LINQ中的特性来讲存储在SQL Server 中的相关数据暴露为对象。这为存储在一个数据库表中的数据与存储在一个应用程序中的对象建立了很好的映射关系。这通常称为对象引用映射(ORM). 为了帮助实现这个映射过程,Visual Studio 2008 提供了对象关联设计器。这提供了一个创建LINQ-to-SQL实体的虚拟设计器。图片A.3 显示了LINQ-to-SQL实体的对象相关设计器。

 2011061218051048.jpg

图片A.3 LINQ-to-SQL对象相关设计器

  需要知道的一件事是设计器默认不适用DataContractSerializer来暴露LINQ-to-SQL实体。这意味着LINQ-to-SQL实体不能通过WCF服务暴露出来。使用一个服务暴露存储在一个数据库中的实体的能力对开发面向服务的应用来说非常重要。幸运的是,微软提供了一个称为Serialization模式的属性,它存在于LINQ-to-SQL设计器表面。设置这个属性为UniDirectinal允许LINQ-to-SQL实体使用[DataContract]和[DataMember]属性来标记。这将LINQ-to-SQL实体以一个数据契约的形式暴露给WCF,也意味着可以被WCF序列化。这个设置也可以使用SqlMetal.exe命令行实例来配置。这个实例可以用来为LINQ-to-SQL实体从一个SQL Server 数据库生成代码。在命令行传递/serialization:Unidirectinal参数会指导SqlMetal.exe 生成可以被WCF序列化的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值