WCF 附录 高级主题 在WCF中使用LINQ
2011-06-12 18:05
232 查看
语言集成查询(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实体的对象相关设计器。
![](http://pic002.cnblogs.com/images/2011/157655/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序列化的类型。
暴露LINQ-to-SQL 实体
LINQ-to-SQL引用LINQ中的特性来讲存储在SQL Server 中的相关数据暴露为对象。这为存储在一个数据库表中的数据与存储在一个应用程序中的对象建立了很好的映射关系。这通常称为对象引用映射(ORM). 为了帮助实现这个映射过程,Visual Studio 2008 提供了对象关联设计器。这提供了一个创建LINQ-to-SQL实体的虚拟设计器。图片A.3 显示了LINQ-to-SQL实体的对象相关设计器。
![](http://pic002.cnblogs.com/images/2011/157655/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序列化的类型。
相关文章推荐
- WCF 附录 高级主题 配置服务配额设置
- WCF 附录 高级主题
- WCF 附录 高级主题 从元数据创建客户端
- WCF 附录 高级主题 配置HTTP连接
- 【WCF】WCF 附录 高级主题 配置服务配额设置
- WCF 附录 高级主题 配置TCP连接
- WCF 附录 高级主题 从元数据创建Silverlight客户端
- WCF 附录 高级主题 在服务间共享端口
- WCF 附录 高级主题 系列文章
- 用JNI进行Java编程---高级主题及附录
- WCF 第四章 绑定 使用高级Web 服务通信
- DWR高级主题之DWR与spring集成(使用springMVC,并使用注解的实例)
- 使用 WPF、WCF 与 LINQ 构建基于 Office 的解决方案
- DWR高级主题之DWR与spring集成(不使用springMVC,不使用注解的实例)
- 综合应用WPF/WCF/WF/LINQ之二十五:使用CustomControl技术编写一个翻页控件
- 综合应用WPF/WCF/WF/LINQ之二十四:使用UserControl技术编写一个翻页控件
- 书精通C# 3.0与.NET 3.5高级编程——LINQ、WCF、WPF、WF(随书附赠的评论
- WCF使用LINQ连接数据库,MVC展示使用jQuery调用WCF
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数据库子表方法
- Silverlight使用LINQ、WCF访问SQL视图(转载于 银光中国)