目前有很多代码生成工具,很多做得很好,我在上一篇关于代码生成工具的随笔(www.iqidi.com上,可供下载使用

我的C#代码生成工具下载地址:
(个人网站)下载地址:http://www.iqidi.com/Download/Database2SharpSetup.rar
(华军软件)下载地址:http://www.newhua.com/soft/54592.htm
(天空网站)下载地址:http://www.skycn.com/soft/32456.html 
下面截一些图像,对C#代码生成工具进行介绍,希望能够给大家带来更多的信息和帮助。
1。支持NHibernate代码和PetShop架构代码的生成(多种形式).
2。可以查看数据库的信息和实现查询分析器的功能,可以很快地看看数据库的信息哦
3。数据库文档的生成,在模块设计中非常有用,谁想去写描述和字段名称,类型的对应关系呢,笨!
4。测试数据脚本的生成,在外键非常复杂的表中,我们想添加一条记录都是很容易哦,这个可以更加表的外键关系调整插入测试数据的顺序,很周到吧。
5。最新加入了Web界面自动生成功能
6。最新加入了Castle的ActiveRecord代码生成功能

Database2Sharp升级到V3.5版本功能增加或者改进:
1. 增加国际化语言支持(提供中文和英文两种界面)
2. 增加数据库表结构SQL脚本的生成(各种不同的数据库生成不同的SQL脚本),在打开表信息的时候同时在下方生成。
3. 增加Select、Update、Insert和Delete基本语句代码的生成。
4. 增加实体类快速生成的功能,直接在窗体中打开,并用语法高亮显示。
5. 增加可以对表进行选择性生成代码的功能。
6. 增加对MySQL数据库GBK的支持,方便使用中文操作,完好支持MySQL5.0。
7. 改善SQL Analyzer和测试SQL脚本的操作。
8. 改善数据库配置项管理,提供更方便简单的操作。

代码生成工具随笔(2) ---我的生成工具 

下面这个是代码生成工具生成的代码,一个解决方案中包括各层所需要的代码哦,另外Petshop架构一、三中生成实体类对应的集合,我们完全可以使用该集合代替ArrayList,而且该集合对象是采用目前最好的实现方式来做的,继承自可以排序的集合类。目前我还没有完成页码代码的生成,下一步工作就是要做这个事情,呵呵。


Castle代码目前主要是生成实体类的代码(包含各种ActiveRecord所需要的Attribute), 关系自动生成,模版代码的定制能力更强。
using System;
using System.Collections;
using System.Xml.Serialization;
using Castle.ActiveRecord;

namespace HuaweiSoftware.IPSPBD.Entity
{
    [ActiveRecord("Product")]
    public class ProductInfo : ActiveRecordBase
    {
        #region 成员变量

        private IList m_itemList;        
        private string m_productId;        
        private CategoryInfo m_category;        
        private string m_name;        
        private string m_descn;        

        #endregion

        #region 属性

        [HasMany(typeof(ItemInfo), Table="Item", ColumnKey="ProductId")]
         public virtual IList ItemList
        {
            get
            {
                return this.m_itemList;
            }
            set
            {
                this.m_itemList = value;               
            }
        }

        [PrimaryKey(PrimaryKeyType.Assigned, "ProductId")]
         public virtual string ProductId
        {
            get
            {
                return this.m_productId;
            }
            set
            {
                this.m_productId = value;               
            }
        }

        [BelongsTo("Category")]
         public virtual CategoryInfo Category
        {
            get
            {
                return this.m_category;
            }
            set
            {
                this.m_category = value;               
            }
        }

        [Property("Name")]
         public virtual string Name
        {
            get
            {
                return this.m_name;
            }
            set
            {
                this.m_name = value;               
            }
        }

        [Property("Descn")]
         public virtual string Descn
        {
            get
            {
                return this.m_descn;
            }
            set
            {
                this.m_descn = value;               
            }
        }
        #endregion
       
        #region 静态方法
       
        public static void DeleteAll()
        {
            ActiveRecordBase.DeleteAll(typeof(ProductInfo));
        }
       
        public static ProductInfo[] FindAll()
        {
            return ((ProductInfo[])(ActiveRecordBase.FindAll(typeof(ProductInfo))));
        }
       

         public static ProductInfo Find(string ProductId)
        {
            return ((ProductInfo)(ActiveRecordBase.FindByPrimaryKey(typeof(ProductInfo), ProductId)));
        }
    
       
        #endregion

    }
}

相关文章: