基於Grove的.NET應用程式開發提示

來源:互聯網
上載者:User

 

基於Grove的.NET應用程式開發提示

 

1.       盡量避免新增映射實體類,主要表現在關係映射實體。當程式需要查詢符合某種條件的記錄時,往往需要通過關係映射實體進行查詢,當該關係實體在其他調用者使用時,有時又因為缺少某些欄位而需要向該關係映射實體新增查詢欄位或重建立立實體,所以在關係實體建立的時候,應盡量考慮其他調用者的需求,這樣可以有效避免關係映射實體的重複或因關係實體的改變而導致的其他不安定因素。

2.       避免在資料操作層中出現同樣的功能(方法),儘管這些功能可能不屬於同一個管理類。當調用者需要新增或修改(包括刪除)一個實體(非關係實體)時,應首先檢查Façade層中是否已經有該功能的存在,這要求資料操作層中所有管理類的編寫者明確的注釋好每一個方法的功能描述,要排除歧義。

3.       在實體映射時,如果該實體映射某個主表,一般應明確該主表對應的子表映射項。如主表表名為Main,子表表名為Sub,對應的映射實體為Main.class和Sub.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的定義

 

待續...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.