使用值对象作为 RavenDB .NET 客户端的标识符
Using value object as as identifier with RavenDB .NET client
我正在寻找一个示例,说明如何使用自定义 class 作为 RavenDB .NET 客户端的标识符。我有这样的东西:
class Product
{
public ProductId Id { get; }
public Product()
{
Id = new ProductId(Guid.NewGuid());
}
// ...
}
其中 ProductId 如下所示:
class ProductId
{
public Guid Value { get; }
public ProductId(Guid value)
{
// validation
Value = value
}
}
我没有在文档中找到关于该主题的任何信息。有谁知道这样做吗?
文档标识符(文档 ID)始终是与文档关联的 字符串。
参见:https://ravendb.net/docs/article-page/5.0/csharp/server/kb/document-identifier-generation
您可以让服务器为您生成 Guid:.
参见:https://ravendb.net/docs/article-page/5.0/csharp/server/kb/document-identifier-generation#guid
为此,您分配:Id = string.Empty
参见:https://ravendb.net/docs/article-page/5.0/csharp/client-api/document-identifiers/working-with-document-identifiers#autogenerated-ids
否则,也许:
将当前Id属性重构为:
public ProductId MyId { get; }
并用
初始化
MyId = new ProductId(Guid.NewGuid());
在 Product
class
上再添加一个 属性
public string Id { get; set; }
使用OnBeforeStore分配:
Id = MyId.Value
我正在寻找一个示例,说明如何使用自定义 class 作为 RavenDB .NET 客户端的标识符。我有这样的东西:
class Product
{
public ProductId Id { get; }
public Product()
{
Id = new ProductId(Guid.NewGuid());
}
// ...
}
其中 ProductId 如下所示:
class ProductId
{
public Guid Value { get; }
public ProductId(Guid value)
{
// validation
Value = value
}
}
我没有在文档中找到关于该主题的任何信息。有谁知道这样做吗?
文档标识符(文档 ID)始终是与文档关联的 字符串。
参见:https://ravendb.net/docs/article-page/5.0/csharp/server/kb/document-identifier-generation
您可以让服务器为您生成 Guid:.
参见:https://ravendb.net/docs/article-page/5.0/csharp/server/kb/document-identifier-generation#guid
为此,您分配:Id = string.Empty
参见:https://ravendb.net/docs/article-page/5.0/csharp/client-api/document-identifiers/working-with-document-identifiers#autogenerated-ids
否则,也许:
将当前Id属性重构为:
public ProductId MyId { get; }
并用
初始化MyId = new ProductId(Guid.NewGuid());
在
Product
class
上再添加一个 属性public string Id { get; set; }
使用OnBeforeStore分配:
Id = MyId.Value