RavenDb中的只读键或。。。RavenDb和Azure表存储之间的互操作性

RavenDb中的只读键或。。。RavenDb和Azure表存储之间的互操作性,ravendb,azure-table-storage,Ravendb,Azure Table Storage,我希望在RavenDb数据库中为客户托管一些配置参数,同时在Azure表存储中为这些参数逐分钟生成大量数据点。我需要一个基本的方式来连接RavenDb和ATS。显然,这种连接是通过按键完成的。我的问题是RavenDb在其所有Id字段中使用正斜杠,而在PartitionKey或RowKey中使用正斜杠时,ATS会呕吐 我的问题如下:在我的RavenDb实体中是否可以有一个只读Id密钥(没有设置器)。这种键方法将返回带有“entity/”前缀的基于Guid的键的值。这样,我也可以将基于Guid的ID

我希望在RavenDb数据库中为客户托管一些配置参数,同时在Azure表存储中为这些参数逐分钟生成大量数据点。我需要一个基本的方式来连接RavenDb和ATS。显然,这种连接是通过按键完成的。我的问题是RavenDb在其所有Id字段中使用正斜杠,而在PartitionKey或RowKey中使用正斜杠时,ATS会呕吐

我的问题如下:在我的RavenDb实体中是否可以有一个只读Id密钥(没有设置器)。这种键方法将返回带有“entity/”前缀的基于Guid的键的值。这样,我也可以将基于Guid的ID键存储在raven实体中,并能够将ravenEntity.RootId(Guid)与storageEntity.PartitionKey(基于Guid的字符串)进行比较。我担心的是,即使我的实体似乎坚持使用Raven并重新加载OK。。我可能有一些更模糊的功能问题


是否有其他建议或已制定的方法来处理这种关系?

因此,您只需要在RavenDB模型中使用一些创建后不会更改的内容,您可以使用这些内容来关联存储在Azure表存储中的关联数据

好吧,假设您的RavenDB的文档id不会更改(而且它不能更改,因为它将是另一个文档),您可以使用文档id使用确定性guid

public class MyModel
{
    public string Id { get; set; }

    // Other stuff

    [JsonIgnore]      // <--- This really doesn't need to be persisted to RavenDB
    public string AzureLookupKey
    {
        get { return "entity/" + Utils.GetDeterministicGuid(this.Id).ToString("n"); }
    }
}
公共类MyModel
{
公共字符串Id{get;set;}
//其他东西
[JsonIgnore]//