RavenDB - 将实体加载到与存储为不同的 class
RavenDB - Loading entity into a different class than it was stored as
实体存储为 class A
(在 "Raven-Clr-Type" 属性中指示)。有没有可能以某种方式 load/serialize 将它变成不同的 class?
B entity = session.Load<B>(id)
其中 A
和 B
不同 classes.
编辑:我不是在谈论更改数据库中的 Raven-Clr-Type
,而是想知道如何将实体反序列化为与 [=15] 中指定的实体不同的 class =].
- 使用 'patch' 并修改 "Raven-Clr-Type" 以包含
class B -或-
的类型
- 如果class是A和B有相同的属性但是
只是 class 名称与您可以删除 class 定义不同
从你的代码和 RavenDB 将加载到 class B
这可行,但不是最佳实践:
var x = session.Advanced.DocumentStore.DatabaseCommands.Get("stringId/1").ToJson();
MyType y = Newtonsoft.Json.JsonConvert.DeserializeObject<MyType>(x.ToString());
实体存储为 class A
(在 "Raven-Clr-Type" 属性中指示)。有没有可能以某种方式 load/serialize 将它变成不同的 class?
B entity = session.Load<B>(id)
其中 A
和 B
不同 classes.
编辑:我不是在谈论更改数据库中的 Raven-Clr-Type
,而是想知道如何将实体反序列化为与 [=15] 中指定的实体不同的 class =].
- 使用 'patch' 并修改 "Raven-Clr-Type" 以包含 class B -或- 的类型
- 如果class是A和B有相同的属性但是 只是 class 名称与您可以删除 class 定义不同 从你的代码和 RavenDB 将加载到 class B
这可行,但不是最佳实践:
var x = session.Advanced.DocumentStore.DatabaseCommands.Get("stringId/1").ToJson();
MyType y = Newtonsoft.Json.JsonConvert.DeserializeObject<MyType>(x.ToString());