引言
本篇给大家介绍我这个工具的雏形结构,以及基本的用法,还请大家多提意见。
初看起来,这个有点像NHibernate。说到这里,肯定有人要拍砖了。其实,我也知道。我这个不入流的东西,和NHibernate相比差远了。我开发这个东西的原因主要有两个:
1)NHibernate太复杂了,学习了两个星期,觉得它太强大了。但是强大是用复杂做代价的,里面要学习的东西太多了,不敢轻易引入项目,因为很多原理不清楚,报错也不明确,所以不敢轻易在项目中使用。
2)自己想练练手,顺便通过这个过程,也好深入继续深入学习一下NHibernate。因为在写这个工具的过程中,我会看NHibernate的源码,然后看他的源码调用关系,调用逻辑,在自己的工具中模仿它,通过模仿来学习提高。
正文
开始正文吧。写上一幅我目前的工具类图。

基本的调用关系,有点像NHibernate。
给大家先贴一段使用的示例代码。

Custom ORM Code Demo
//初始化Session
ISession session = new Configuration().Configure().BuildSessionFactory().OpenSession();
Order order = new Order();
Guid id = order.OrderID = Guid.NewGuid();
order.ProductName = "seed1221002" + DateTime.Now.ToLongTimeString();
//添加
session.Save(order);
session.SubmitChange();
//获取
order = new Order();
order = session.Get(new Guid("6744C2AB-C780-4DAD-9089-DF166747640F"));
//事务操作
using (ITransaction tran = session.BeginTransaction())
{
try
{
session.Save(order);
order.ProductName = "seed1221003" + DateTime.Now.ToLongTimeString();
session.Update(order);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
}
}
内部具体的数据库操作,目前使用的是Enterprise Library V5.0,感觉使用企业库比较方便。后面的话,如果发现不合适,可以直接用原生的ADO.NET代替就可以了。
代码:/Files/virusswb/BTFramework.rar
结合我的 自定义ORM系列(一)利用attribute实现简单的reader=>entity和reader=>List<entity>映射 和 自定义ORM系列(二)发现属性是否修改,有选择的持久化 以及 胡乱说一下我对于 BO VO PO DTO 的理解 中的思想,就可以实现一个完整的基于attribute的ORM小工具,以及有选择的持久化。还可能会极大的减轻系统的维护量。在后面我会将完整版的工具上传,我还会继续完善其他的功能,以及进行一些测试。
后话
如果有哪位有心人,愿意看在下的代码,不嫌弃在下代码乱的话,可以帮我理理思路。因为,我觉得目前的代码结构不是很好,我不知道我这个在实际中使用的话,会遇到什么问题,在哪些地方还需要提高,还需要注意什么,或者说代码的结构那里需要调整?希望有缘人可以指点一二,当然了,胡乱说几句也可以,先谢过了。
当然了,这个ORM工具我也会继续的完善,希望在下一个项目中可以实践一下。
分享到:
相关推荐
在.NET开发环境中,这样的工具通常与Entity Framework、LINQ to SQL等ORM框架结合使用,自动化处理数据访问层(DAL)、业务逻辑层(BLL)以及用户界面层(UI)的代码生成工作。 标题中的"代码生成工具.zip"暗示了这...
- **Rod Johnson**,被誉为“Spring之父”,在其著作《Expert One-to-One J2EE Design and Development》中阐述了 J2EE 使用 EJB 的优点及解决方案,在后续的《Expert One-to-One J2EE Development without EJB》中...
在本文中,我们将深入探讨 Flutter 后台管理框架的关键特性和使用方法。 Flutter 是一种开源的移动应用开发框架,由谷歌开发,旨在为 iOS 和 Android 平台提供原生性能的应用程序。其强大的跨平台能力使得开发者...
同时,对于数据持久化,学生将学习如何使用SQLAlchemy这样的ORM库来定义模型、执行数据库的增删改查等操作。这些技能是构建功能完备Web应用的关键。 #### 教学要求与学时安排 本课程总课时为52课时,其中34课时用于...
- 在实际项目中,通常不会直接使用 JDBC 进行数据库操作,而是结合 ORM 框架或自定义 DAO 层来提高开发效率和代码质量。 - DAO (Data Access Object) 层专门用于处理与数据库相关的逻辑。 **7.2 DAO 设计模式简介**...
J2EE(Java Platform, Enterprise Edition)是Java技术在企业级应用开发中的核心框架,它提供了一系列的组件和服务,用于构建可扩展、跨平台、分布式的企业级应用程序。J2EE 5是其第五个主要版本,发布于2006年,...