2013-04-07 49 views
1

直接到達我的觀點:我想有獨立的對象模型,我不會引用數據庫引擎的任何庫,這樣我就可以使用多個對象或文件數據庫是模型(如RavenDB的,db4o, eloquera等)有沒有什麼辦法來實現TransparentActivation沒有引用的db4o庫分爲模型?

,另一方面我會先設計db4o的,所以讓我們想象一下下面的對象模型類:

public class User : IActivatable 
{ 
    [Indexed] 
    private string name; 

    [Transient] 
    private string securityinfo; 

    .... 
} 

一些解決方案,我已經有(索引,級聯):

  • [Indexed]屬性我可以DBCONFIG端配置,如:config.Common.ObjectClass(typeof(User)).ObjectField("name").Indexed(true);
  • 刪除[Transient]屬性 - ??
  • 刪除IActivatable - ?? (我想用Postsharp的的測量儀器,可以實現注入編譯後的界面,但它仍然需要Db4objects.Db4o.dll的引用可以Db4oTool儀器做?)

這樣的問題:

如何可以刪除對象模型項目Db4objects.Db4o.dll參考,並仍然能夠申請喜歡TransparentActivation和瞬時性(索引我已經覆蓋)的功能?

回答

0

關於IA可激活接口,db4o確實需要可激活類型來實現此接口;如果你可以在你的模型組件db4o的引用住那麼db4otool可以(在源代碼級所以沒有引用到db4o在您的模型類,也無需做任何額外的工作)添加實現這個接口對您(選件-ta and maybe -collections) 。

關於TransientAttribute,你有一些選擇:

  • 依靠非序列化的屬性,而不是
  • 指定自己的屬性爲transient處理。

希望這有助於!

相關問題