【问题标题】:Specifying Collection Name in RavenDB在 RavenDB 中指定集合名称
【发布时间】:2011-08-06 21:49:32
【问题描述】:

假设我有 3 个对象水果、苹果和橙子。 Fruit 是 Apple 和 Orange 的抽象基类。当我使用 session.Store(myApple) 时,它会将其放入 Apples 集合中。 myOrange 存储在 Oranges 集合中。说得通。

我可以告诉 Raven 我想要一个可以装苹果或橙子的水果系列吗? Mongodb 允许这样做,因为它允许我明确指定集合名称。 RavenDB 集合文档说:

预期的使用模式是集合用于分组 具有类似结构的文档,尽管这不是必需的。从 从数据库的角度来看,集合只是一组文档 共享相同的实体名称。

我希望它类似于:session.Store(myApple) 或 session.Store("Fruits", myApple)

有什么想法吗?谢谢。

【问题讨论】:

标签: c# oop ravendb


【解决方案1】:

锥子, 你可以这样做:

session.Store(apple);
session.Advanced.GetMetadataFor(apple)[Constants.RavenEntityName] = "Fruits";

这是很长的路要走。 一个更好的方法是全局添加这个逻辑,它看起来像这样:

store.Conventions.FindTypeTagName = 
   type => type.IsSubclassOf(typeof(Fruit)) ? 
       DocumentConvention.DefaultTypeTagName(typeof(Fruit)) : 
       DocumentConvention.DefaultTypeTagName(type);

这将处理一切。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多