SOA数据访问:使用LINQ To SQL和实体框架实现灵活的数据访问2010-01-03 MSDN Anthony Sneed本文使用以下技术:LINQ to SQL、ADO.NET实体框架和SOA目录创建数据访问层持久化各个对象跨服务边界跟踪更改配置客户端总结迄今为止,Microsoft 已面向开发人员发布了两种旨在减少关系数据领域和面向对象的编程之间 的阻抗失谐的产品:LINQ to SQL 和 ADO.NET 实体框架。借助其中任何一种产品,您不必编写大部分探 测代码,即可实现对象持久性。但是,将这些对象关系映射 (ORM) 技术应用到面向服务的应用程序体系 结构为应用程序开发人员带来了全新的挑战。例如,如何创建将对象持久性与应用程序其他部分 分离的数据访问层 (DAL),以便在需要时使用一个 ORM 提供程序换出另一个提供程序。如何在客户端没 有安装 LINQ to SQL 或实体框架的情况下跟踪对实体的更改?如何通过仅调用服务一次即可在单个事务 中插入、更新和删除多个实体?在本文中,我将进行简要介绍并提供一些有关如何解决上述问题 的建议。首先,我将基于 Northwind 示例数据库创建一个用于处理订单的 DAL。DAL 的两种实现(一种 使用 LINQ to SQL,一种使用实体框架)依赖于一个接口(请参见图 1)。LINQ to SQL 和实体框架都 具有基于数据库架构生成实体的工具,但是 DAL 并不使用这些实体,而是仅公开涉及到自身持久性时通 常忽略的数据传输对象 (DTO)。

图 1 适用于订单处 理应用程序的面向服务的体系结构