【问题标题】:RavenDB not storing document after update valuesRavenDB 在更新值后不存储文档
【发布时间】:2016-03-05 17:25:50
【问题描述】:

我在 RavenDB 中遇到了一个罕见的问题(与 ASP.NET MVC、C# 一起使用),我希望有人可以在这里帮助我。

我先解释一下上下文:

  • 所以基本上我有两个文档存储“Person”(名字、姓氏、项目……)和“Project”(姓名、代码、团队成员……)。
  • 一个人有一个或多个项目(例如,一个名为 X 的人工项目)

问题:

  • 例如,我将一个项目链接到一个人
  • 此后,每当我尝试更新 Project 的某些属性时,该项目都没有得到保存。
  • 但是,当此项目未与人员关联时,我可以编辑所有字段。

我的问题:

  • 是否有任何安全选项或阻止此更新的东西。更好的是:是否可以在我更改某些内容时更新所有文档,无论是在 Person 还是 Project 中更改?

如果我的问题不够清楚,我会尝试以不同的方式解释,感谢您的帮助。

【问题讨论】:

  • 显示有问题的代码肯定会有所帮助。理想情况下,您已经在一个简短的代码示例中隔离了问题,您可以与我们分享,以便我们有一个讨论的基础。现在你的问题只是一些没有太多上下文的难以理解的文本块。
  • 您好,很抱歉回复晚了。这对我来说很愚蠢,在某个地方我用 if 阻止了 SaveChanges()。另外我认为我保存文档的方法是错误的。我想我只需要保存和 id 而不是整个文档,这应该使它更加一致且易于保存而不会出现问题。

标签: c# asp.net asp.net-mvc ravendb


【解决方案1】:

我没有太多要添加 cmets 的意思,然后我尝试回答您的问题(不是很清楚)。

您似乎正在尝试在非关系数据库上实现关系数据库逻辑(想想这个)。

我想在项目列表中,您有一个类似于“ProjectId”的属性,它指向已保存的文档 Project/8(例如),这只是一个可以轻松加载该文档的参考,但是您必须加载它才能编辑。

如果您保存一个文档 Project/9,然后将其添加到项目列表中,这些未连接,您需要手动维护它。

【讨论】:

  • 这是有道理的,我一直在使用关系数据库,最近我需要进行切换,这就是我一直这么想的原因。所以你基本上是说为项目和人员保留一个ID列表会有效地完成这项工作吗?或者你怎么推荐它?现在我基本上将整个文档项目存储在文档人员中。但我想这不是一个好方法,因为我需要双重加载并保存所有内容。
  • 顺便解决了不保存的问题,是if阻塞了SaveChanges的问题。我的愚蠢问题。但我的储蓄方法并不完全正确和有效。你猜对了我想要做什么,你能提供更多关于你将如何处理这个问题的信息吗?非常感谢您的帮助。
  • 这取决于您需要什么以及您向用户显示的内容,但当然,如果您想模拟多对多关系,您的项目列表变成了指向相关文档的 id 列表(例如. 项目/8).
猜你喜欢
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多