[NFrog]增加新的数据库生成器

数据库生成器可让NFrog工具向数据库导出结构、从数据库导入结构生成实体。一个生成器一般负责一种数据库,如工具自带的AccessControl负责Access2K数据库的导入、导出。



引用

添加对NHFrog.Generator.Schema.Forms.dll的引用

继承

所在生成器都需要继承自DbSelect。DbSelect本身是一个用户自下定义控件,所以说每个生成器都是一个自定义控件。以下是DbSelect的源代码
    public class DbSelect:System.Windows.Forms.UserControl
    
{
        
public DbSelect()
        
{            
        }

        
public virtual string SelectorName
        
{
            
get{return "";}
        }

        
public virtual string ConnectString
        
{
            
get{return null;}
        }

        
public virtual DbServer Server
        
{
            
get{return null;}
        }

        
public override string ToString()
        
{
            
return this.SelectorName;
        }

    }

属性中比较重要是Server,他的类型是DbServer。DbSelect和DbServer是构成生成器的两个基类。看Access2K是如何继承自该两基类的
public class AccessControl : DbSelect
{
    
//.省略部分代码
    public override string SelectorName
    
{
        
get{return "Access";}
    }
        

    
public override DbServer Server
    
{
        
get{return new AccessServer(this.txtFile.Text);}
    }


    
public override string ConnectString
    
{
        
get{return string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}",this.txtFile.Text);}
    }

}

 

[Serializable]
public class AccessServer:DbServer
{        
    [NonSerialized()]
    
private OleDbSchema schema;

    
public AccessServer(string pFilePath):base(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}",pFilePath))
    
{
        
this.schema = null;
    }

    
重写父类成员
}


继承自DbServer的子类,必须是可序列化的。AccessServer中的OleDbSchema 是项目自定义的一个类,目的是为NextTable、NextColumn方法服务以方便查询数据结构。

配置

生成dll文件后,拷贝到工具目录中,并打开frog.config文档,为dll文件新增<ConnectBuilders>节点
<ConnectBuilders>
    
<Assembly>NHFrog.Generator.Schema.Forms.dll</Assembly>
  
</ConnectBuilders>
posted @ 2006-05-23 10:28  生命体验之kevin-Y  阅读(449)  评论(0编辑  收藏  举报