据我所知,ravendb使用对象的CLR类型来确定Raven-Entity-Name元数据。例如,保存Spoon类型的对象将导致创建Spoon文档并将其添加到raven服务器上的勺子集合中。
下面是几个简单的例子来帮助解释我的意思。
这会将项目存储在' ExpandoObjects'集合
dynamic item1 = new ExpandoObject();
item1.Id = "item/100"
item1.Cost = "£10";
item1.Color = "Silver";
//other properties relevant to the item being created
using (var session = this.documentStore.OpenSession())
{
session.Store(item1);
session.SaveChanges();
}
这会将项目存储在'项目'系列:
Item item2 = new Item();
item2.Id = "item/101";
item2.Name = "Postcard";
item2.Cost = "£1";
item2.Material = "Card";
using (var session = this.documentStore.OpenSession())
{
session.Store(item2);
session.SaveChanges();
}
第一个代码块会将项目存储为ravendb中的ExpandoObject。但我想要的行为是乌鸦将它作为项目存储,以及我的强类型项目,如第二个代码块所示。
有没有办法配置DocumentStore,以便它将Id字段的左侧部分用作Raven-Entity-Name,而不是ExpandoObject CLR类型?或者这样的事情不可能吗?
提前致谢。