上周末我在家试着使用几个ORM工具来写了数据访问模块。使用的模式都是UnitOfWork和Repository。 最终由服务层来和业务模块进行数据交互。目前只有3种ORM工具的例子。
包括Entity Framework, NHibernate和Simple.Data。
项目地址:http://code.google.com/p/multi-orm-samples/
补充:应有些人要求,让我上传一份源代码,在google code上上传了一份可以下载的代码,非svn迁出。6个小时内超过110次下载,确实有点不可思议。。。我会继续更新,包括模式和ORM工具,以及IOC工具。
数据访问模块的对比:
在不同的ORM中有不同的自动生成数据库方式。相对来说,EF最大的优势就是对SQL Server的支持更好,它设置不需要实体和数据库的映射就能自动创建数据库。而NHibernate对多数据库的支持非常好,而且它是比较稳定的东西。
Simple.Data代表一个新的势力,还很年轻,才0.9.它的优势不仅是使用了.net最新的特性,让数据的交互更加没有约束性,另外还支持扩展。目前很多人都在它的基础上写了针对各个数据库的ORM扩展。包括MongoDB。
在Web层面我使用了MVC3。另外使用了几个IoC工具,包括Unity和Autofac。
实际上例子中只是简单的增删改查,不包括1-N的例子,但是我可以确定的是,这几个ORM工具都可以很好的支持这些join,where ,in等数据操作。
这篇文章我不会介绍整个实现过程,整个实现并不复杂,所以如果你觉得需要我另外来介绍如果真个架构的实现,可以在后面评论里说明下,具体哪里不明白。
代码下载:
http://code.google.com/p/multi-orm-samples/
或者:http://code.google.com/p/multi-orm-samples/downloads/list 可以下载
你可以使用SVN CheckOut 源代码。
我希望有更多人愿意参与进来,完善现在的整个模式,让学习ORM的新人能够更快的去了解如何使用这些工具,对比它们的优缺点。
如果你有这个意向,并且有自己喜欢的ORM工具,请写好你的代码并通过email(nic162534@gmail.com)和我联系。
你的代码必须遵循以下几个规则:
1.遵循目前存在的3个ORM的编写模式。
2.面向接口编程。
3.使用IoC工具(Ninject,Castle, StructerMap等)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库