利用反射+自定义特性实现简单ORM(二),“无SQL”的数据库增删改查

d上一次写了简单的实现,还是基于写SQL的情况下,这次可以实现基本的单表的简单条件的(复杂条件构想中)数据增删改查,通过特性标识来完成实体与数据表的映射。
有朋友上次提出多表间的关系映射,暂时还是通过(多实体类-视图)的映射实现,虽然写起来可能会麻烦些,不过应该也符合面向对象嘛!

代码:
实体插入:
Code

使用相应实体类需要三个特性:
[DataTbName("People")] 表名,类唯一
[DataField("Name",IsPrimaryKey=true)] 字段,主键可以加上IsPrimaryKey不参与Insert
[DataInsert()] 参加Insert操作的字段必须添加此特性
例:
Code

使用示例:

People people = new People();
            people.PName 
= "杨春来";
            people.PSex 
= "";
            people.PAge 
= 21;
            ExecuteEntity.InsertEntity
<People>(people);
实体删除操作,主要就是跟据主键了,多条件的正在想一个好的解决方案,例:
Code

实体类需要两个特性:
[DataTbName("People")] 标识表名
[DataField("Name",IsPrimaryKey=true)] 字段名和一个主键,根据主键删除
使用示例:
People people=new People();
            people.SysNo
=sysNo;
ExecuteEntity.DeleteEntity
<People>(people);

更新一个实体:
Code

需要特性:
[DataTbName("People")] 表名
[DataField("Name",IsPrimaryKey=true)] 字段名和一个主键
[DataUpdate()] 参与更新的字段必须实现此特性

例:
Code

使用示例:
Code


大至就是这样,还未完。实现更灵活的主法。
PS:有很多人说反射性能很差很差,这个先保留意见下!
posted @ 2009-07-27 09:16  Assion Yang  阅读(4908)  评论(35编辑  收藏  举报