直截了当地说:我想拥有独立的对象模型,我不会引用任何数据库引擎库,这样我就可以在多个对象或文档数据库(例如 RavenDB、db4o、eloquera 等)中使用该模型.)
另一方面,我将首先设计 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 的引用,并且仍然能够应用透明激活和瞬态(我已经介绍过的索引)等功能?