Ravendb - 自动生成自己的密钥

2024-01-12

我当前有一个对象,它有一个名为 Id 的公共属性。当我存储对象时,我希望 Id 成为数据的一部分,而不是像当前那样成为文档 Id。创建文档存储时,我仅设置连接字符串。

using (var session = documentStore.OpenSession())
{
    session.Store(a);
    session.SaveChanges();
}


a can be thought of an object as:
public class A
{
    public Guid Id { get; set; }
    //other properties
}

因此,要么我希望它生成一个随机 Id,要么将数据和 documentId 都作为 A 类的 Id 属性。

EDIT:

所以有两种可能: 1. 文档Id = Id 和

Data Section contains:
{
    data //sorry if the notation is not correct, doing it off of memory
    {
        Id: [my guid] 
        //other properities
    }
}

或者包含Id和Document ID的数据=由raven随机生成


如果你愿意,你可以使用这个Id成为您自己控制的属性,并让 raven 使用另一个属性作为文档 id:

public class User
{
    public string DocumentId { get; set; }
    public Guid Id { get; set; }
    public string Name { get; set; }

    public User()
    {
        Id = Guid.NewGuid();
    }
}

documentStore.Conventions.FindIdentityProperty = prop =>
{
    if (prop.DeclaringType == typeof(User))
        return prop.Name == "DocumentId";

    return prop.Name == "Id";
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ravendb - 自动生成自己的密钥 的相关文章

随机推荐

  • 如何解决 UserWarning: findfont: Could not match :family=Bitstream Vera Sans

    下列的这个例子 http matplotlib org users transforms tutorial html axes coordinates import numpy as np import matplotlib pyplot
  • Android 和 Java 中的 TimeZone.getAvailableIDs

    我是 Android 中时区列表的 TimeZone getAvailableIDs 与 Java 相比 它在 Android 中的行为有所不同 String tzone TimeZone getAvailableIDs 3 3600 10
  • Apache 和 SSL 背后的 Tomcat

    我到处寻找但找不到针对以下情况的明确解决方案 我们有一个 Web 应用程序 Grails Spring Security 在 apache 后面的 tomcat 中运行 Part应用程序的一部分需要在 https 上运行 因此使用 Spri
  • 在jpanel上画线

    我想让它像画一把尺子 带有 90 度角刻度线的线 https stackoverflow com questions 3488419 java draw a ruler line with tick marks at 90 degree a
  • 类的 Python repr

    As the Python 2 文档 repr http docs python org 2 reference datamodel html object repr 状态 如果可能的话 这个 即 repr 应该看起来像一个有效的 Pyth
  • 将数据拆分为 3 列数据框

    我在将数据文件解析为数据帧时遇到问题 当我使用 pandas 读取数据时 我得到一个包含所有信息的一列数据框 Server 7 14 182 917 20 Dec 2018 08 30 21 0500 GET tools performan
  • 在线 Internet Explorer 模拟器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 试图找到类似的问题 重复的问题 失败 我在mac上开发 我爱我的麦克 我使用 Chrome Firefox 和 Safari 进行开发 我
  • ajax请求中变量丢失

    当尝试将变量作为参数传递给嵌套的 ajax 请求回调时 我遇到了奇怪的行为 form on submit function e ajaxSetup header meta name token attr content e preventD
  • chrome.tab.onactivated

    有人可以告诉我如何使用chrome tabs onActivated 如果 url 等于 我想刷新单击 激活的选项卡 www example com http www example com 或者 如果这是错误的方法 请告诉我该使用什么 首
  • 首次通过 URL 方案打开时 iOS 应用程序崩溃

    我的应用程序处理 URL 方案 当它已经运行并从另一个应用程序调用时 它的行为正确并且没有问题 但是 当它完全关闭时 如在非后台模式下 并且另一个应用程序调用它 它会立即崩溃 我已经设置了 等待可执行文件启动 选项 以便我可以调试appli
  • ES6模块是同步加载还是异步加载?

    模块加载器负责加载模块 我所知道的是 模块加载器在浏览器中异步加载模块 而在 Node js 中它是同步加载的 我想确认一下这个信息是否正确 ES6 模块加载器将是异步的 而 Node js 模块加载器则不是 以下是模块加载器的一些关键方面
  • 从 html 访问 $scope?

    由于愚蠢的第三方原因 我需要从html访问 scope 这就是我正在尝试的 Because angular是全局暴露的 你可以使用 var scope angular element scope 例如 如果您的标记中有此内容 div div
  • 我想在页面过期(419)显示时重定向到登录页面

    我在 handler php 中添加了这段代码 if exception instanceof Illuminate Session TokenMismatchException return redirect gt route login
  • 根据背景颜色改变汉堡菜单的颜色

    有一个白色的汉堡菜单 问题是 在我的项目中 由于背景不透明 网站的某些地方不可见 任务是编写一个脚本 该脚本应根据背景颜色将颜色更改为对比色 例如 在下面的代码中 在黑色背景上 菜单应变为白色 最初的计划是为每个块分配不同的ID 当菜单图标
  • 如何将 Apache 日志重定向到 STDOUT 和 Apache 日志文件

    我正在运行一个 docker 容器 想要将 apache 服务器的日志写入 STDOUT 和文件 知道我的 Apache httpd conf 文件需要什么样的配置吗 任何帮助将不胜感激 你可以试试这个 CustomLog usr bin
  • 如何将字符串写入远程服务器(linux)中的文件

    我试图构建一个小代码 在其中创建一些字符串并将该字符串传输到位于远程服务器中的文件 应在运行时创建 就我而言 远程服务器是 Linux 有人可以帮我吗 我正在使用 JSCH 和 ChannelSftp 但无法执行此操作 下面是我的代码 JS
  • Mono:堆部分太多当应用程序占用内存超过 4 GB 时,增加 MAXHINCR 或 MAX_HEAP_SECTS

    我正在具有 8 GB 内存的 bitnami linux 上运行我的单声道应用程序 它是一个复杂的文件合并应用程序 在运行时应该占用大量 RAM 但每次需要超过 4 GB 的 RAM 时 它都会崩溃并显示以下错误消息 Too many he
  • 底层连接在 HttpWebRequest POST 上关闭 在生产服务器上

    我收到 底层连接已关闭 连接意外关闭 尝试在生产服务器上使用 HttpWebRequest 类进行 POST 时出错 但在我的开发计算机上它工作正常 我最初尝试使用 WebClient 类 但我切换到 HttpWebRequest 来尝试研
  • 如何以分布式方式在本地启动drillbit?

    我下载了 Apache Drill v1 8 编辑了conf drill override conf进行以下更改 drill exec cluster id drillbits1 zk connect 10 178 23 140 2181
  • Ravendb - 自动生成自己的密钥

    我当前有一个对象 它有一个名为 Id 的公共属性 当我存储对象时 我希望 Id 成为数据的一部分 而不是像当前那样成为文档 Id 创建文档存储时 我仅设置连接字符串 using var session documentStore OpenS