2013-04-07 19 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处理。

希望这有助于!

相关问题