您的位置:首页 > 其它

Winson.Framework的实体操作解说

2007-08-06 21:27 260 查看
Winson.Framework的实体操作解说:

本框架支持泛型+自定义实体集合进行操作,整个实体操作的思想主要是使用了微软MSDN上的一篇文章:《掌握 ASP.NET 之路:自定义实体类简介

一、本框架实体操作的特点:

1、一般的实体类操作,均要手工去为每个实体里的属性赋值,如果里面的字段少的话还好说,要是有十几二十个字段,那可要累坏人,当然也可以使用代码生成器完成,但这样生成出来的代码量会非常大。
本框架利用为每个实体类添加索引器以解决以上问题,通过索引器,然后自动为每个字段循环赋值,关于索引器代码可使用生成器生成,但如果使用的是ACCESS数据库,代码生成的索引器就会有问题了,因为在CodeSmith里读出ACCESS的字段顺序会有所不同,我也不知道为什么会这样,郁闷

2、很多时候使用实体类操作时,如果我只需要操作(如更新)某一个字段,但都需要为其他各字段同时赋值,然后再整个实体去更新(至少我使用PetShop4框架时是这样的),这就会感觉非常不方便
本框架已做了相关的控件,可只为需要操作的某个或多个字段进行赋值,不需考虑其他字段

3、要为每个实体类生成独立的操作类方法,非常浪费,因为每个实体都有不同的类型,所以一些增、删、改、查的方法都不能通用
本框架使用了泛型方法将实体封装到集合里,然后再根据传入的实体对象去调用不同的方法,然后动态去生成所需要的SQL语句

二、实体类的使用

本框架基本上以三层架构方式搭建,建议新建立一个实体类的项目(Model),然后再建立一个数据操作项目(DAL)

1、首先使用CodeSmith代码生成器生成所有实体类(放到Model项目里)和相关的操作类(放到DAL项目里,即DEMO里的ModelOperate.cs文件),生成方法可 点击这里查看!

2、将DEMO里的BaseDBOp.cs和ModelCollection.cs文件COPY到你的DAL项目里(注意里面的命名空间要改成你自己项目的)

3、这时可以将项目进行一次编译,如通过编译后再进入下一步

4、在界面层开始调用实体操作方法:
1)先声明实体类和相关的操作方法,声明方法如下:(以下均以本DEMO项目里实体为例)

protected Employees empDS;
protected WType wtypeDS;

这里需要注意的是,实体只是声明,但不要同时进行实例化,这是因为本框架使用了泛型类,过早实例化会取不到实体对象(好像是这个原因吧,呵呵),必须将实例化方法放在Page_Load或者其他函数体内,如以下是实例化的代码:

protected void Page_Load(object sender, EventArgs e)
public IList GetList(string tableName)
7
8public IList GetList(string tableName, string strWher)
15
16public object GetDSByID(IList modeList, string tableName, int fieldID)
24
25public object GetDSByID(string tableName, int fieldID)
32
33public int GetMaxID(string tableName)
39
40public int OperateDS(string tableName, SqlType opType, IList model, bool isTrans, string strWhere)
50
51public int OperateDS(string tableName, SqlType opType, object model, bool isTrans, string strWhere)

具体方法实现,请看相关的页面代码吧,反正代码都在那里了,呵呵。

这里值得说明的是最后1个方法,即OperateDS,我做了一个重载,分别可对实体进行批量(即批量更新、删除等)和单一操作,使用方法在我的DEMO里也有了

基本上实体操作就这些啦,如果大家在使用中遇到什么问题,也欢迎在这里提出来:)

本框架下载地址:
http://bbs.szblogs.com/showtopic-137.html
或者
/article/5316404.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: