使用CASTLE.ActiveRecord的注意事项之一:总览

    最近这个项目采用了我积极推荐的CASTLE ACTIVERECORD作为项目的持久层,项目实施过程中遇到了一些自己早期测试没有遇到的问题,加上其他的一些零零碎碎的问题,总结一下

1、ACTIVE RECORD自带的代码生成器并不支持ORACLE。 我的做法是把数据库设置到SQL SERVER中,再生成的

2、如果ORACLE的主键是自增序列,则采用下面的写法

 [PrimaryKey(PrimaryKeyType.Sequence, SequenceName  =   " SE_KAM_FAVORITE_TYPE " )]
        
public   int  FAVORTYPEID
{

}

 

3、多对一,使用[BelongsTo("FORIGNKEY")] ,字符串写外键名

4、一对多,


        
private  IList < KAMBonuse >  kAMBonuseList;
        
/// <summary>
        
/// 含有的BONUSE,1:N 依照FK_KAM_BONUS
        
/// </summary>

        [HasMany( typeof (KAMBonuse), Table  =   " T_KAM_BONUSE " , ColumnKey  =   " KAMID " , Lazy  =   true )]
        
public  IList < KAMBonuse >  KAMBonuseList
        
{
            
get
            
{
                
return this.kAMBonuseList;
            }

            
set
            
{
                
this.kAMBonuseList = value;
            }

        }

 

5、多对多               

  private  IList < DepartmentVO >  departmentList;
        
/// <summary>
        
/// 集团客户与代理人,或者是营业部 N:N ,注意区分。 依照T_KAM_AGENCY_MAP。此处注意,有时候是N:1,有时候是n:n
        
/// </summary>

        [HasAndBelongsToMany( typeof (DepartmentVO), Table  =   " T_KAM_AGENCY_MAP " , ColumnRef  =   " DEPTID " , ColumnKey  =   " KAMID " , Lazy  =   true )]
        
public  IList < DepartmentVO >  DepartmentList
        
{
            
get
            
{
                
return this.departmentList;
            }

            
set
            
{
                
this.departmentList = value;
            }

        }

6、需要注意的是能写成对象的千万不要写成原数据类型。比如说如果A表的Bid字段对应B表,但是没有拉键的连接。使用的时候最好把A表的Bid写成B对象。

    该问题涉及NHIBERNATE的一个“脏数据管理”的问题,我准备转一篇文章来描述一下

7、如果出现一表多用,或者二表一用的情况,建议考虑NHIBERNATE里面的单表继承、多表继承机制。详见另外一篇文章

8、部门对使用CASLTE进行查询、分页、排序已经写出了完整的框架了。记得以后使用

9、VO对象写的时候要泛型继承

  public   class  User: ActiveRecordBase < User >

这样可以获得很多的单对象操作方法

10、采用LAZY载入后,要注意使用

  using  ( new  SessionScope())

而使用上面代码的时候,又要注意

  using  ( new  SessionScope(FlushAction.Never))

以避免在查询的时候自动提交修改

11、以上6、7、10点,另有详细的文章进行论述
   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值