自定义实体的代码自动生成

在使用三层架构的时候,老是要为自定义实体写很多的get set方法,真是不爽, 实在不想动手写,就想办法写了个存储过程,以帮助我自动生层实体代码,供打架参考。

if(object_id('generatecode')) is not null drop proc generatecode
go
CREATE proc generatecode
    
@table varchar(50)
as

declare @sqlstr varchar(2000)    
create table #tmp    
(    
    column_name 
varchar(20),    
    type_name 
varchar(20),    
    length  
varchar(10)    
)    

create table #text(n_text varchar(1000))

select @sqlstr ='      
insert into #tmp (column_name,type_name,length) select name,type_name,a.prec    
    from syscolumns a ,master.dbo.spt_datatype_info b    
    where id = object_id(N
'''+@table+'''
    and OBJECTPROPERTY(id, N
''IsUserTable'') =1    
    and  a.xtype=b.ss_dtype 
    and  a.length = isnull(b.fixlen, a.length)    
    AND isnull(b.AUTO_INCREMENT,0) = isnull(ColumnProperty (a.id, a.name, 
''IsIdentity''),0)    
    AND (b.ODBCVer is null or b.ODBCVer = 2)    
'     
execute(@sqlstr)

declare @name varchar(20)
declare @type varchar(20)
declare cur cursor scroll for select column_name,type_name from #tmp
open cur
fetch next from cur into @name,@type
while @@fetch_status = 0
begin
    
insert into #text values('private '+ case when @type='varchar' or @type='nvarchar' or @type='char' or @type='text' or @type='ntext' then 'String ' + @name + ';'
                
when @type='int' or @type='int identity' then 'int ' + @name + ';'
                
when @type='datetime' or @type='smalldatetime' then 'DateTime ' + @name + ';' 
                
when @type='bit' then 'bool ' + @name + ';' 
                
when @type='decimal' or @type='numeric' or @type='money' or @type='smallmoney' then 'decimal ' + @name + ';' 
                
when @type='float' then 'double ' + @name + ';' 
                
when @type='binary' or @type='image' or @type='varbinary' or @type='timestamp' then 'byte[] ' + @name + ';' 
                
when @type='real' then 'single ' + @name + ';' 
                
end
    )
    
fetch next from cur into @name,@type
end

fetch absolute 1 from cur into @name,@type
while @@fetch_status = 0
begin
    
insert into #text values('public '+ case when @type='varchar' or @type='nvarchar' or @type='char' or @type='text' or @type='ntext' then 'String ' + upper(@name)
                
when @type='int' or @type='int identity' then 'int ' + upper(@name)
                
when @type='datetime' or @type='smalldatetime' then 'DateTime ' + upper(@name)
                
when @type='bit' then 'bool ' + upper(@name
                
when @type='decimal' or @type='numeric' or @type='money' or @type='smallmoney' then 'decimal ' + @name
                
when @type='float' then 'double ' + @name
                
when @type='binary' or @type='image' or @type='varbinary' or @type='timestamp' then 'byte[] ' + @name
                
when @type='real' then 'single ' + @name
                
end
    )
    
insert into #text values('{')
    
insert into #text values('get{return this.' + @name + ';}')
    
insert into #text values('set{this.' + @name + ' = value;}')
    
insert into #text values('}')
    
fetch next from cur into @name,@type
end
close cur
deallocate cur
select * from #text
drop table #tmp
drop table #text
GO

exec generatecode 'userinfo'

VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序员开发量身定做的代码生成工具,所生成的代码基于面向对象、分层架构设计、ORM并参考微软Petshop中的经典思想,融入了工厂设计模式及反射机制等。工具目前直接支持Oracle、SqlServer、Access、MySQL、Sybase、SQLite、DB2、PostgreSQL及支持OleDb连接的数据库,从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。同时通过实体可实现简单数据库添加、修改、删除、查询等操作,同时对添加和修改提供一个统一的保存操作(即实体会根据主键或实体条件值自动判断是更新还是插入);并提供大量的相关示例代码。同时由于考虑到数据库迁移等,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于任何类型的数据库访问操作等,对应文件会自动解析,既一次生成可用于多种类型的数据库的操作,且当数据库表字段发生重大变化时再生成一次即可。 所有数据库的操作都是以默认实体对应表的主键为准,当然也可指定,增加和更新合并为一个保存操作,由实体本身自己判断是增加还是更新,当然你若愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后即知。工具同时提供大量的示例代码(如System.Database.Demo等),用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,示例都是以对应数据库自带的示例库为例介绍的。 最新版本也可参见下列地址: http://download.youkuaiyun.com/source/3030634 http://www.skycn.com/soft/53715.html http://download.enet.com.cn/html/030212009031901.html http://qun.qq.com/air/#60873348/share
VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的代码基于OO、ADO.NET、分层架构、ORM,改进的抽象工厂设计模式及反射机制等。目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种数据库,并支持自定义分页查询(Skip/Take)。从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。同时通过实体可快速实现数据库表的增删改查等操作,另外,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于各种类型数据库的访问操作等,对应文件会自动解析,即一次生成可用于各种类型的数据库的操作;且当表字段发生重大变化时再生成一次即可。所有数据库的操作默认以实体对应表的主键(可以是联合主键)为准,当然也可指定条件。增加和更新合并为一个保存操作,由实体自己判断是增加还是更新,若你愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后才会发现。工具同时提供帮助文档和大量的示例源码(如ECG.Demo等),用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,一些示例以对应数据库自带的示例库为例介绍的(如Oracle)。详见安装后文件和工具帮助.
摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于面向对象、分层架构、ORM及反射+工厂设计模式等。支持.Net1.1及以上版本,可用于Oracle、SqlServer、Sybase、DB2、MySQL、Access、SQLite、PostgreSQL、DM(达梦)、PowerDesigner文件、Informix、Firebird、MaxDB、Excel等和OleDb、ODBC连接的数据库并可自定义,详见文档及安装文件的示例和工具的帮助文档。 关键字: VB/C#.Net实体代码生成工具 实体代码生成工具 EntitysCodeGenerate 预期读者: 软件开发及相关人员 难度等级: 中 当前版本: 4.3 目 录 1 引言 3 2 内容 4 2.1 ORM框架的实现:VB/C#.Net实体代码生成工具(EntitysCodeGenerate) 4 2.2 在开发中的实际应用 5 2.2.1 单个实体对象的数据库操作 6 1、获取一个实体对象信息 6 2、插入一个实体对象信息 6 3、更新一个实体对象信息 6 4、保存一个实体对象信息 6 5、删除一个实体对象信息 7 6、取得实体映射表数值字段的最大值+1 7 2.2.2 多个实体对象的数据库操作 7 1、实体集对象的使用 7 2、结合事务处理 7 2.2.3 数据查询及通用DML操作 9 1、 常用实体对象查询 9 2、 ORM结构化查询 9 (1)、Select查询 10 (2)、From连接查询 10 (3)、Where语句的Condition条件 11 (4)、Order By排序功能 11 (5)、Group By分组条件及排序 12 (6)、结合事务处理的功能 14 3、Delete删除 15 4、Update更新 15 5、Insert插入 16 2.2.4 DbCore+SQL/存储过程 17 1、DbCore+SQL 17 2、DbCore+存储过程 19 2.2.5 Extend辅助扩展功能 20 1、TableHelp辅助扩展 20 2、CommonHelp常用方法扩展 22 2.2.6 ORM的分析及与Xml的交互 22 1、ORM的分析 22 2、与XML的交互 23 3 结束语 23 4 相关下载地址 24 http://www.skycn.com/soft/53715.html http://download.enet.com.cn/html/030212009031901.html http://www.newhua.com/soft/98941.htm http://www.duote.com/soft/32643.html http://www.crsky.com/soft/25626.html http://download.youkuaiyun.com/source/3030634 http://qun.qq.com/air/#60873348/share http://blog.youkuaiyun.com/chutao http://lxchutao.blog.163.com http://hi.baidu.com/lxchutao http://download.enet.com.cn/eblog/blog/htm/uid_21280.html
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值