luoqing

导航

VCS Framework(O/R Mapping) Step by Step (二) 简单维护

承上一篇:VCS Framework Step by Step (一) 
在练习时前,请下载最新的生成器

    大家做程式的都知道,需求是天天在变动的,需求变化不光是影响业务的变化,还可能引起数据库的变化,字段的新增,修改,删除,怎么办呢,现在给你介绍使用VCS Framework应付这种情况所做的工作。

1、重新生成类;
2、在原有的基础进行扩充。

我们以上一篇生成的类做样例。
如果需求引起数据库更改,比如加了一列:Six bit
怎样处理呢?

首先在数据库上执行下面这个SQL 脚本:

alter table Person add  Six bit null


处理方式有两种:
1、重新生成类:
    这种方式只有适用在没有做任何重构或1-N处理时是最方便的,因为只是简单的处理一下(处理方式和上篇一样重新来过就行了)。
2、在原有的基础进行扩充。
    这才是本篇要介绍的;由于重构或者1-N处理后(后续篇将详细介绍),类就会变得比较复杂。而重新生成的话,可能会忘了这忘了那的,变得非常复杂。

首先打开代码生成器
如下图:

选取“从XML文件中加载”,“XML文件夹”选取你工程里自动生成的XML文件夹即可:
再点“下一步”进入下一页

选种Person.xml点“下一步”进入下图:

先选种Person后,生成器会自动加载原来的属性,再在原来的基础上新增一列Six,如上图下面红色标志所示;
先介绍一下上面各列的用途:
属性名:即将来生成类的属性;
列名:即表的列名;
关联类名、关联对象属性名、自定义权举类型在后续篇再讲
类型:是指数据库的类型;
表列:由于该框架是以表为基础,以视图为扩展,所以要标明该列是属于视图还是属于表的。


完成上述动作后,点下一步/下一步,进行生成代码区;如下图:

“代码文件夹”,“XML文件夹”可以直接选取工程里的文件夹及工程里XML文件所在的文件夹即可,再点生成代码;就完成了一个简单的维护。

生成的代码如图:
Genarated/Person.cs

  1
  2/*
  3*********************************************************
  4*    璇存槑锛氱敱VCSFramework鐢熸垚鍣ㄧ敓鎴?                     *
  5*   濡傛灉鏈変粈涔堥棶棰橈紝璇疯仈绯籖obert_luoqing@hotmail.com    *
  6*********************************************************
  7*/

  8using System;
  9using System.Data;
 10using com.Robert.Framework;
 11
 12
 13namespace com.test
 14{
 15    /// <summary>
 16    /// 
 17    /// </summary>

 18    [Serializable]
 19    public  partial class Person 
 20    {
 21        
 22        public Person()
 23        {
 24            this._data = new PersonData();
 25
 26            this.id = Guid.NewGuid();
 27                                
 28        }

 29
 30        public Person(Guid ID)
 31        {
 32            this._data = new PersonManager().GetPersonByID(ID)._data;
 33        }

 34            
 35
 36        Property
 97
 98        
 99        Operation
115
116        public override bool Equals(object obj)
117        {
118            if (obj is Person)
119            {
120                return this.id == ((Person)obj).id;
121            }

122            else
123            {
124                return base.Equals(obj);
125            }

126        }

127        public override int GetHashCode()
128        {
129            return base.GetHashCode();
130        }

131                        
132    }

133}

134



下篇:日志处理。
框架源代码下载地址:http://luoqing.cnblogs.com/archive/2006/04/13/374241.html

posted on 2006-04-16 19:59  罗青  阅读(888)  评论(0编辑  收藏  举报