我的一个实体操作类
之前好几个项目我都用到了一个我开发的实体操作类,今天整理了一下,贴到我的blog大家可以参考学习。
这个实体类主要的目的是用来完成,查询,更新,插入和删除(增删改使用存储过程)等数据库操作,之前这些操作可能都需要通过自己编写SQL语句来完成,现在写了一个类,这个类会自动拼写SQL语句,并且返回实体列表完成数据查询。使用是只需要通过在实体类和属性中关联表和存储过程关系,就能轻松完成所有操作(在实际应用中我还开发了一个自动生成工具用来生成存储过程和实体,这里就不提供了非常简单的东西因为实体和存储过程都是可以按模板自动生成)。
这个工具,支持单表以及多表关联查询(就是inner,left,right 一类),也可以完成单个实体映射到多个存储过程中,举个例子:比如你将实体定义为多表关联,比如连接2张表,这样你这个实体更新是就类似视图需要更新多张表,这个时候你可以给实体属性添加多个特性来讲这个字段映射到多个存储过程中,并通过类上添加特性定义存储过程执行顺序和返回值就能完成对一个类似视图更新的过程。
每个实体除了作为结果以外,也可以作为一个简单条件实体存在,用来完成简单的条件查询(如:将某个属性定义为条件,如果此属性不为空则在并写查询语句时将它以“=”方式加入条件),当然你也可以为每个查询添加额外的条件语句。
编写这个的主要目的,因为之前项目都不允许通过直接编写更新语句来对数据库操作,操作必须是由存储过程来完成,而现有很多现成实体工具都是直接生成更新语句,不太好用,想到之前java里的hibernate东西(之前EDI项目写了个类似的东西),但是又不想编写一个映射模板,就直接用特性写了,简单方便。这个东西大家如果自己写一个自动生成工具来生成实体和存储过程的话,在项目里用起来还是相当方便的,因为这些东西如果一同自动生成的话,内容都是可以通过模板自己生成的,所以需要的可以参考一下。
运行这个实例需要准备一下条件:
调用示例需要数据库的支持,程序默认使用了MSSQL数据库,你可以使用其他数据,但是需要修改DBLink中创建连接的方法。
你需要在数据库中创建一张“Test”表,这个表需要有“C1 (nvarchat)”和“C2 (int)”两个字段用来映射测试实例里的实体。
你需要创建一个存储过程用来更新“Test”表,名为“SP_TestApply”,它应该也有C1和C2两个参数。(更新时建议可以使用ISNULL来判断传入参数是否为空,为NULL就不更新)
一切准备完毕就到 http://code.msdn.microsoft.com/adecea28-994e-4969-8ac9-d9ec27a6e626 去下载实例代码