基于Grove的.NET应用程序开发提示

 

基于Grove的.NET应用程序开发提示

 

1.       尽量避免新增映射实体类,主要表现在关系映射实体。当程序需要查询符合某种条件的记录时,往往需要通过关系映射实体进行查询,当该关系实体在其他调用者使用时,有时又因为缺少某些字段而需要向该关系映射实体新增查询字段或重新建立实体,所以在关系实体建立的时候,应尽量考虑其他调用者的需求,这样可以有效的避免关系映射实体的重复或因关系实体的改变而导致的其他不安定因素。

2.       避免在数据操作层中出现同样的功能(方法),尽管这些功能可能不属于同一个管理类。当调用者需要新增或修改(包括删除)一个实体(非关系实体)时,应首先检查Façade层中是否已经有该功能的存在,这要求数据操作层中所有管理类的编写者明确的注释好每一个方法的功能描述,要排除歧义。

3.       在实体映射时,如果该实体映射某个主表,一般应明确该主表对应的子表映射项。如主表表名为Main,子表表名为Sub,对应的映射实体为Main.classSub.class,该Main实体应申请子表项如下(例):

ArrayList _childs=null;

public ArrayList Childs

{

       get{

              if(this. _childs==null)

              {

                     //oo的初始代码

                     this._childs=new ArrayList();

                     this. _childs=oo.RetrieveChildObjects(this.id,this._ childs,typeof(Sub));

                     //oo的释放代码

}

return this. _childs;

}

       set{this._childs=value;}

}

4.       实体操作的定义,主子表关系应有事务支持,如下:

public void AddMain(Main m)

{

//oo的初始代码

       oo.BeginTransaction();

       try{

              oo.InsertObject(m);

              oo.InsertObjects(m.Childs);

              oo.Commit();

}

catch(Exception e)

{

   oo.Rollback();

   throw e;

}

       oo.Dispose();//oo的释放代码

}

5.       层间数据的传入传出,当某个功能需要实现通过某个实体的KeyField返回该实体时,传入的应是该实体的KeyField;当某个实体的新增或更新时,应传入该实体的实例。

6.       逻辑层Rule的定义

 

待续...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值