C# 是否将域模型用作RavenDb中的文档?
我正在考虑使用我的域模型(DDD)作为RavenDb中的文档。这是个坏主意吗 如果没有,我将使用id类(如C# 是否将域模型用作RavenDb中的文档?,c#,nosql,domain-driven-design,ravendb,C#,Nosql,Domain Driven Design,Ravendb,我正在考虑使用我的域模型(DDD)作为RavenDb中的文档。这是个坏主意吗 如果没有,我将使用id类(如TodoListId),其中包含id(在ravens案例中为todolists/3等)。如何告诉Raven/JSON.NET使用它们作为id public class TodoListId { public class TodoListId(string id) { //validate the id and set internal var }
TodoListId
),其中包含id(在ravens案例中为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时,我通常将所有setter设置为protected,以确保域模型得到正确使用。RavenDb客户端也可以吗?还是序列化不起作用
todoList.Id.ToString()
将返回todoList/1
关于受保护的设置程序,是的,这将起作用。
关于TodoListId,您需要提供一个
ITypeConverter
实现,并将其注册到DocumentStore.Conventions.IdentityTypeConvertors
,以使RavenDB了解如何在Id类型和Id字符串之间进行转换。关于受保护的setter,是的,这将起作用。
关于TodoListId,您需要提供一个
ITypeConverter
实现,并将其注册到DocumentStore.Conventions.IdentityTypeConvertors
中,以使RavenDB了解如何在Id类型和Id字符串之间进行转换。oracle已经说过了。应该是的。瑞文还能生成id吗?jgauffin,是的,它应该能,是的。神谕已经说过了。应该是的。Raven还能生成id吗?jgauffin,是的,它应该能做到,是的。为什么不把id属性权放在类中呢?或者让您的域实体从EntityBase派生,并将Id放在那里?为什么不将Id属性权放在类中?或者让您的域实体从EntityBase派生,并将Id放在那里?