2012-02-01 11 views
2

ドメインモデル(DDD)をRavenDbのドキュメントとして使用することを考えています。それは悪い考えですか?ドメインモデルをRavenDbのドキュメントとして使用しますか?

もしそうでなければ、IDを含むidクラス(TodoListIdなど)を使用しています(レイドの場合todolists/3など)。 Raven/JSON.NETにidとしてそれらを使用するように伝えるにはどうすればよいですか?また

public class TodoListId 
{ 
    public class TodoListId(string id) 
    { 
     //validate the id and set internal var 
    } 

    //override ToString to return the id 
} 

public class TodoList 
{ 
    public TodoList(TodoListId id) 
    {} 

    public TodoListId Id{get;set;} 
    public TodoListId Parent {get;set;} 
    public string SomeBasicProperty {get;set;} 
} 

、私はドメインモデルが適切に使用されていることを確認するために、私は通常の保護にすべてのセッターを設定NHibernateはを使用しています。 RavenDbクライアントでも可能ですか?それとも、シリアル化の作業はそれほどありませんか?

todoList.Id.ToString()は、todolists/1を返します。

+1

Idプロパティをクラスに置くのはなぜですか?または、あなたのドメインエンティティをEntityBaseから派生させて、そのIDをそこに置くことができますか? –

答えて

4

プロテクトされたセッターについては、それが有効です。 TodoListIdに関しては、ITypeConverterの実装を提供し、それをDocumentStore.Conventions.IdentityTypeConvertorsに登録して、Id型とID文字列の間の変換方法をRavenDBが理解できるようにする必要があります。

+1

オラクルは話しました。それはそうだ。 –

+0

RavenはまだIDを生成できますか? – jgauffin

+0

jgauffin、はい、そうすることができるはずです。はい。 –

関連する問題