如何将ADO.NET Framework整合进Spring.NET中

After the release of .NET Framework 3.5 SP1 from Microsoft, more and more developers interested in ADO.NET Entity Framework and hope to use it in their applications’ data access layer. But the current version of Spring.NET data access part only supports primitive ADO.NET and NHibenate, they don’t know how to integrate EF into Spring.NET and get benefits from Spring.NET transaction management and strength AOP ability. Because I also encountered same problem and did not get result from Internet, today after the research, I wrote an example describes this.

在微软发布 .NET Framework 3.5 SP1 之后,ADO.NET Framework 吸引了越来越多的开发人员和将它 用到了项目的数据访问层中。但是,当前版本的 Spring.NET 只支持原始的 ADO.NET 和 NHibernate,大 家不知道该如何将 EF 和 Spring.NET 进行集成并从 Spring.NET 的事务管理和强壮的 AOP 中获得好处 。我也遇到了相同的问题,在网上也没有找到任何结果。今天在进行研究之后,我写了一个关于这个的例 子。

The most efficient way of controlling transaction with EF is using System.Transactions.TransactionScope, so in the example we also use it.

在使用 EF 的时候,最有效的是使用 System.Transactions.TransactionScope 来控制事务,所以这 个例子也是使用的它。

First of all, I think that we need to understand the mechanism of how Spring.NET manages transaction. As we known, Spring.NET transaction control is base on its AOP, which means the transaction control codes are dynamically injected into methods configured with transaction need at runtime. The following codes illustrate the mechanism.

在开始之前,我想我们先需要理解 Spring.NET 管理事务的机制。如我们所知道的,Spring.NET 的事 物控制是基于它的 AOP 的,这意味着,事物控制代码是在运行时被动态插入那些被配置为需要事物的方 法的。下面的代码描绘了这个机制。

Our real code:

我们的代码:

[Transaction]
static void DbOperation()
{
     // Our data access code
}

AOP acted on code:

AOP 作用后的代码:

[Transaction]
static void DbOperation()
{
     TransactionScope ts = new TransactionScope();
     try
     {
         // Our data access code

         ts.Complete();
     }
     finally
     {
         ts.Dispose();
     }
}

After the understanding base on the previous code, we know that all we only need to do is using AOP ability from Spring.NET to inject transaction code arround ourself code of method. Because EF code needs a System.Data.Objects.ObjectContext object to interact with underlying database, so we can provide a base class for our data access classes.

时间: 2024-10-29 03:16:16

如何将ADO.NET Framework整合进Spring.NET中的相关文章

如何把NOTES8邮箱整合进OA系统中的问题,急!!!!!

问题描述 公司现在接了个OA系统的项目,是用JAVA开发一个B/S架构的OA系统,客户要求把NOTES8邮箱整合进OA系统中,各位有做过或未做过的高手有什么最简便的实现方案能提供下吗,先谢谢了!!! 解决方案 解决方案二:引用楼主lynx213的回复: 公司现在接了个OA系统的项目,是用JAVA开发一个B/S架构的OA系统,客户要求把NOTES8邮箱整合进OA系统中,各位有做过或未做过的高手有什么最简便的实现方案能提供下吗,先谢谢了!!! 这个我们公司是做NOTES这块的,我不是这个部门帮你顶下

如何把NOTES8邮箱整合进OA系统中的问题,急(要求一天解决)!!!!!

问题描述 公司现在接了个OA系统的项目,是用JAVA开发一个B/S架构的OA系统,客户要求把NOTES8邮箱整合进OA系统中,各位有做过或未做过的高手有什么最简便的实现方案能提供下吗,先谢谢了!!! 解决方案 解决方案二:是was吗?如果是的话,可以导出一个KEY文件,然后导入到OA系统中,然后做web-sso,这不是一天能解决的问题~解决方案三:谢谢你了哈,还是有点不明白,之后跟他们确认了下,是以WEB形式访问notes,notes支持web形式的访问,再在OA系统中封装一下访问地址,这有可能

Spring Boot中使用Swagger2构建强大的RESTful API文档

由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端. 这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发.Android开发或是Web开发等.为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTf

中文乱码-ckdinder整合进java里面选择文件后返回路径名带中文的变成乱码

问题描述 ckdinder整合进java里面选择文件后返回路径名带中文的变成乱码 在java上使用ckfinder,上传文件成功,中文名也行,就是选择这个带中文名的文件时,返回的路径变成乱码 解决方案 URIEncoding=""UTF-8""你看看你的tomcat有没有设置这个

maven 整合springmvc spring myatis整合报错

问题描述 maven 整合springmvc spring myatis整合报错 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] at java.util.concurrent.FutureTask.

百度架构调整:贴吧事业部整合进产品技术团队

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 7月20日上午消息,百度近日已撤销原有贴吧事业部编制,并将贴吧相关运营.市场等业务整合进大产品技术团队.百度贴吧事业部负责人舒迅内部另有任用.今年上半年另一社区化团队百度社会化网络事业部也被裁撤. 百度正在对旗下业务体系进行大规模调整,其中尤以百度副总裁王梦秋负责的用户产品与技术体系变动,最为外界所关注. 百度方面表示,这次调整的目的在于整合

站长网播报:盗版高清门户遭查封续 PPS整合进爱奇艺

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 1. 锐观察:一万个地方网站App正在袭来 BAT一桩桩巨额收购战背景下,站长,曾经中国互联网草根创业者的代名词,正变成腐朽的代名词,连象征着"荣耀"的站长大会也要改名创业者大会,那么在移动互联网时代,站长们真的毫无作为吗? 在5月11日的站长大会上,我采访了不少为站长们开发网站工具的互联网公司,并特别关注了下午的新媒体论坛,忽然惊觉:一万个地方网站App正在奔腾而来.这背后则是地方网站转型的条件已经成熟,用中国传统的分析方法就是

苹果利用新获批专利将投影仪整合进iOS设备

硅谷网讯 http://www.aliyun.com/zixun/aggregation/17197.html">北京时间7月17日消息,据国外媒体报道,美国专利与商标管理局(USPTO)周二授权给苹果一项名为"分享工作区投影显示"(Projecteddisplaysharedworkspaces)的专利,该专利 提出一项新技术,可以将小型投影仪整合到 iOS设备之中并且允许用户利用手势来控制投影显示. 该专利设想的设备将利用一个摄像头来检测指向投影区的手势的影子和轮廓

Spring Boot中集成Spring Security 专题

if语句中条件判断就是检查当前的url请求是否是logout-url的配置值,接下来,获取用户的authentication,并循环调用处理器链中各个处理器的logout()函数,前面在parse阶段说过,处理器链中有两个实例,处理会话的SecurityContextLogoutHandler及remember-me服务,我们来一一看看它们的logout函数实现: 2.1.0 SecurityContextLogoutHandler public void logout(HttpServletR