1

要点を直接説明すると、データベース エンジンのライブラリを参照しない独立したオブジェクト モデルが必要であり、そのモデルを複数のオブジェクト データベースまたはドキュメント データベース (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 の参照をオブジェクト モデル プロジェクトから削除し、TransparentActivation や Transience などの機能を適用できるようにするにはどうすればよいでしょうか (私が説明したインデックス作成)。

4

1 に答える 1

0

IActivatableインターフェースに関して、db4o はこのインターフェースを実装するためにアクティベート可能な型を必要とします。モデル アセンブリで db4o 参照を使用できる場合、db4otool はこのインターフェイスの実装を追加できます (オプション-ta およびおそらく -collections ) (したがって、ソース コード レベルでモデル クラスに db4o への参照はなく、必要もありません。余分な作業を行います)。

TransientAttribute に関しては、いくつかのオプションがあります。

  • 代わりに NonSerialized 属性に依存する
  • transientとして処理する独自の属性を指定します。

お役に立てれば!

于 2013-04-07T15:40:33.217 に答える