问题标签 [ravendb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
include - 如何将 RavenDb 查询索引结果作为包含到文档
以下两个查询都按预期工作。我无法弄清楚如何使用“Include()”方法一次性从数据库中返回两者。
一旦我添加了“Include()”方法,Query() 和 Advance() 都不再相关。有没有办法做到这一点?
asp.net-mvc-3 - ASP.NET MVC 3、RavenDB 和 Autofac 问题加上 2 其他 Autofac 问题
注意:这里有 3 个问题,我没有提出单独的问题,因为它们都与相同的代码有些相关。
我有以下代码,每个应用程序的生命周期在 Application_Start 中注册一次与我的 RavenDB 的连接:
现在这可以正常工作,并且每个应用程序的生命周期应该只创建一次。现在我想将 DocumentSession 添加到 Autofac,所以我尝试在 Application_Start 中添加:
在我的 UserRepository 中,我有以下构造函数:
当我尝试运行它时,出现以下运行时错误:
无法解析构造函数“Void .ctor(Raven.Client.Document.DocumentStore,Raven.Client.Document.DocumentSession)”的参数“Raven.Client.Document.DocumentSession Session”
对我来说,这个错误听起来像 Autofac 不认为它有 DocumentSession 但是那是 store.OpenSession() 返回的,所以它应该。任何人都知道会导致此错误的原因是什么?我是否没有正确设置会话变量(它与正常工作的存储变量相同)?
与上述问题可能或可能不相关的另一件事是如何将对象的实例添加到 Autofac 每个请求而不是每个应用程序生命周期?虽然 RavenDB DocumentStore 对象应该只在生命应用程序周期中创建一次,但 DocumentSession 应该在每个请求中创建一次(可能每个应用程序级别创建它会导致上述错误)。
最后一个关于 Autofac 的问题(与上面的代码略有关联)是关于释放对象的。如果您看一下本教程:
最后一段代码:
这段代码的重点是防止会话泄漏。现在这是我还需要为 Autofac 担心的事情吗?如果是这样,我将如何在 Autofac 中执行此操作?
c# - 需要帮助获得与 StructureMap 语法等效的 Ninject
我正在尝试为 Ravendb 实现 IoC (Ninject) 并遇到了一些障碍。我正在使用来自http://www.dotnetguy.co.uk/post/2010/06/12/raven-db-ndash-part-1-ndash-documentsession-per-request-with-structuremap的代码来提供帮助。
我不确定如何转换以下结构映射语法。
在我的尝试中,由于新的构造函数,_ravenSessionFactory 在每个请求上都为空。
感谢任何花时间尝试帮助解释的人。
ravendb - RavenDB:一个简单的查询().ToList() 返回 0 个结果
我正在使用 RavenDB(在服务器模式下运行 @localhost:3000)和 ASP.NET MVC3
我有这个从 build 289 停止工作的代码段。它之前确实工作过几次,不确定是更新到 322 还是我做了什么。
当我前一阵子尝试时,它正在删除所有帖子(我的示例数据中只有大约 50 个奇怪的帖子,还有 500 多个帖子),我能看到的唯一变化是这两个发生在运行时
当上面的代码段(Session.Delete)实际运行时,这个日志出现在Visual Studio的输出窗口中
在 Raven 日志中,(文本文件)没有任何不妥之处
这个查询运行得很好:
并获取正确的 Post Instance。
为什么一个简单的 Session.Query().ToList() 总是返回 0 个结果?并且 Session.Query().Count() 总是返回 0。考虑到 Raven DB 的 SilverLight-UI (SL-UI) 清楚地显示 DB 中有 50 多个帖子,什么可能导致这种行为?
“Raven-Entity-Name”已正确填写。
ravendb - Raven DB 计数查询
我需要获取特定集合中的文档计数:
现有索引 Raven/DocumentCollections 存储集合的计数和名称,与属于集合的实际文档配对。如果可能的话,我想从这个索引中获取计数。
这是 Raven/DocumentCollections 索引的 Map-Reduce:
在旁注中,var Count = DocumentSession.Query<Post>().Count();
始终返回 0 作为我的结果,即使我的数据库中显然有 500 个奇怪的文档,其中至少 50 个在其元数据“Raven-Entity-Name”中作为“帖子”。我完全不知道为什么这个 Count 查询一直返回 0 作为答案 - Raven 日志在 Count 完成时显示这一点
ravendb - RavenDB 查询 ID
我有一个名为Post的模型,它有一个名为Slug的字段。我用属性 [ID] 标记了这个字段,并更改了 RavenDB 中的 FindIdentityProperty 约定,以便它将标记为 [ID] 的属性视为文档的标识。
现在我想获取所有以字符 G 开头的 slug 的帖子,我是否需要创建这样的索引:
或者像这样
还是我使用 RavenDB 内部应该具有的索引,因为我正在查询 ID。我知道 RavenDB 在某处索引了 ID 属性,因此 aSession.Load<Post>("SomeID")
是可能的。
第一个选项可以在 C# 的代码中定义为 AbstractIndexCreationTask,因为 C# 理解 Slug 是 Post 的一个字段,但它不起作用,因为它像这样“字符串”化到 RavenDB 中:(当索引创建发生时)
变成
您可以在创建索引后查看 SL-UI 时看到这一点。
这不起作用,因为(如 DB 的 SL-UI 所示)Post 的 JSON 表示,没有像"Slug":"Some-Slug"
. 由于它是显示在文档上方的 ID ,并且在 @metadata 中它可以被视为_document_id的值
后一个确实有效,但只有在定义为字符串时才有效,就像在 C# 中这样
我怀疑当 Raven 获取包含字符串“ Id ”的查询时,它会自动将其视为 [@metadata][_document_id]上的查询。
这里没有 LINQ 优点 - 看起来很脆弱,无法在域名重构中幸存下来。Id不是 Post 的字段,但这个索引确实让我可以做我想做的事,即“获取所有包含以字符 G 开头的 slug 的帖子”。当数据库应该已经有这样的索引时,我讨厌为 Id 定义索引。
c# - 不包含在 RavenDb 的子列表中
我有实体。
现在我需要查询所有没有给定标签的实体。
失败:
未处理的异常:System.InvalidCastException:无法将“System.Linq.Expressions.MethodCallExpressionN”类型的对象转换为“System.Linq.Expressions.MemberExpression”类型。
普通查询也不起作用:
...它只是什么都不返回。
如何编写这样的查询?
ravendb - 使用 RavenDb 查询字典
我有一个类定义为:
根据我在这里找到的讨论:http ://groups.google.com/group/ravenb/browse_thread/thread/88ea52620021ed6c?pli=1
我可以很容易地存储一个实例:
但是,当我如下查询时:
我收到错误“'System.Linq.Expressions.InstanceMethodCallExpressionN' to type 'System.Linq.Expressions.MemberExpression'。” 如图所示:
如何根据字典中的键进行查询?
c# - WCF 中的 Raven DB 会话管理
我有一个 WCF 服务,它接受请求、执行一些工作并将结果保存到 Raven DB。我认为会话管理应该类似于带有 WCF 的 NHibernate,但我不确定。目前我正在考虑为每个 WCF 请求创建一个会话。
还有其他推荐吗?
c# - 如何禁用 RavenDB 复制
如何禁用 RavenDB 复制?原因是我在一台服务器上有一个简单的数据库,此时我不需要任何复制。
如果我尝试确保已创建数据库,则会收到带有 HTTP 状态 404 的 WebException。当 RavenDB 向/docs/Raven/Replication/Destinations发出请求时发生此错误。还是我应该忽略这个例外?