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
本框架支持泛型+自定义实体集合进行操作,整个实体操作的思想主要是使用了微软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
相关文章推荐
- 《MVC + EF实现增删改查》——操作EF实体详解与删除
- nfs简单操作及解说
- Entity Framework Code First实体关联数据加载
- .net Framework 2.0 专门提供了配置文件的操作。
- .NET基础篇——利用泛型与反射更新实体(ADO.NET Entity Framework)(转)
- EF中更新操作 ID自增但不是主键 ;根据ViewModel更新实体的部分属性
- crm操作货币实体
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(异步上传,下载等)实现汇总2
- [Programming Entity Framework] 第1章 ADO.NET实体框架介绍(一)
- ADO.NET Entity Framework配置实体框架(实体框架任务)
- ADO.NET Entity Framework如何:定义具有修改存储过程的模型(实体框架)
- ADO.NET Entity Framework 如何:定义具有修改存储过程的模型(实体框架)
- [Programming Entity Framework] 第2章 探究实体数据模型(EDM)(二)
- Winson.Framework 3.0 正式发布!!
- List(T) 的实现实体对象操作,之Find FindAll Contains ForEach Sort
- dot net framework 中进行连接db2数据库的操作
- Winson.Framework 2.0 搭建FLASH视频教程!
- ADO.NET Entity Framework使用实体数据
- JPA学习笔记-EJB-05JPA实体对象状态和实体对象的高级操作--2(实体监听器)
- NHibernate利用Mindscape.NHibernateModelDesigner实现数据库与实体之间的转换及操作