博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CYQ.Data 轻量数据层之路 终极升级(二)
阅读量:6039 次
发布时间:2019-06-20

本文共 1653 字,大约阅读时间需要 5 分钟。

在上一篇:中,我们介绍了基本的类库与使用介绍。

 

上篇留言中虽然感觉好像很平静,不过不难想象,大伙仅勿勿一眼一扫而过的那种情景:

一个很沉重的心结,一直在很多开发人员的心里挥之不去:实体类。

大伙似乎都很排拆没有实体类的数据层框架,仅因早于习惯了ORM?

 

其实,我记得我第一次毕设的时候,也是有实体类的:

还记得很久前,毕设做的是仿QQ空间的CQ-Space空间,借用了CodeSmith生成实体类[里面集合了增删改查],来操作数据库,

也感受到了实体类带来的智能提示的开发快感!

这里顺路上几张遥远的图吧,怀念一下:

1:空间主站Logo

2:空间主站集合、用户排名和天气预报

  

3:后台管理界面

4:用户空间主界面:

5:用户相册和相片浏览效果

  

6:用户日志、发布日志

 

7:用户音乐

8:用户聊天室

 

 

上的图有点多,怀念多了一点^-^!回到正题先:

后来,进了第一家公司,一个老程序员带着我用纯SqlHelper+存储过程+代码生成工具做项目,完全忘记实体类的存在了!

再后来,新的技术总监加入,开发博客系列时,开发了这个框架,并将这个框架应用于项目中,中间也没有实体类的存在!

也许没有先入为主的概念,所以,没有实体类,并没对我造成多大的习惯干扰,反而有点排拆实体类了;

 

中间呢有一同事,大概离不开实体类了,于是,在此框架的基础上,又加多一层实体类调用,然后在界面层快乐的调用着它的实体类!

而我呢,早已经习惯此框架的开发,就连后来技术总监开发新的ORM框架时,我也小小排斥了一下,毕竟先入为主的观念那时还是很强烈的。

 

过了些年,我也不排拆实体类了,同时也写了好几个ORM型的框架,有实体+一堆存储过程的,也有实体+反射组合的;目前在用的也是ORM型的。

一路回想回去,其实,哪种都无所谓了,简单好用才是正理!

所以,此框架在重新面世时,我重写了很多代码,为的就是简单好用,配置简单!

 

其实,大伙纠结的,只是因为实体类”打点“的时候,有属性的智能提示,还是为了ORM而ORM呢?

我当初纠结的就只有“实体类的打点提示”功能了;

 

在上一节的里,虽然经过我精心的改造,加入了枚举来实现“打点”的智能提示,不过看起来仍没那么友善,大伙还是排拆多一点啊。

于是,今天又为它“插上两双翅膀”,让它从外层使用上脱离索引型的赋值,走上光明的不归路!

 

结果,代码又简洁了一番,见不着索引与枚举了:

1:添加

MAction action 
=
 
new
 MAction(TableNames.CQ_Album);
//
参数:枚举表名
action.GetFrom(txtUserId);
action.GetFrom(txtAlbumType);
action.GetFrom(txtAlbumName);
action.Insert();
action.Close();

 

2:更新:

 MAction action 
=
 
new
 MAction(TableNames.CQ_Album);
 action.GetFrom(txtAlbumName);
 action.Update(
"
id=1
"
);
 action.Close();

 

3:读取数据:

MAction action 
=
 
new
 MAction(TableNames.CQ_Album);
if
 (action.Fill(
1
))
{
    action.SetTo(lblAlbumName);
    action.SetTo(lblAlbumType);
    action.Close();
}

 

4:删除与查询,基本不涉及实体了,和上节一样,就不另贴代码了。

 

看到以上的操作,是否还觉得不方便呢?如果是,欢迎提供更为方便的操作方式,和大伙分享分享!

 

好了,本文点到为止了,欢迎下载使用:

 

 

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2010/08/13/1798631.html

你可能感兴趣的文章
C#集成FastReport.Net并将模板保存到数据库
查看>>
python装饰器(decorator)两种模式探讨集合
查看>>
高级 DO 语法
查看>>
Jexus下配置多个站点
查看>>
C#中==与Equals方法的区别
查看>>
Xcode编辑器的技巧与诀窍
查看>>
String、StringBuffer与StringBuilder之间区别
查看>>
工作第十三周:身体掏空,精神饱满
查看>>
Linux 内核--任务0的运行(切换到用户模式)move_to_user_mode
查看>>
ios扩展机制objc_setAssociatedObject,objc_getAssociatedObject
查看>>
批量添加-fno-objc-arc
查看>>
二叉树的层序遍历
查看>>
os模块
查看>>
安装 matplotlib
查看>>
css伪类(:before和:after)
查看>>
react native TypeError network request failed
查看>>
PLSQL锁表之后改如何操作
查看>>
Sql注入、文件上传与手机品牌信息抓取解决方案
查看>>
SQLServer跨库查询--分布式查询[转载]
查看>>
django错误-NoReverseMatch at /admin/
查看>>