RavenDB - 将实体加载到与存储为不同的类中

时间:2017-06-15 11:29:28

标签: ravendb

实体存储为类private void pictureBox5_Paint(object sender, PaintEventArgs e) { if (points.Count > 1) { Point center = new Point( (points.Select(x => x.X).Max() + points.Select(x => x.X).Min()) / 2, (points.Select(x => x.Y).Max() + points.Select(x => x.Y).Min()) / 2); e.Graphics.TranslateTransform(center.X, center.Y); e.Graphics.RotateTransform(angle); e.Graphics.TranslateTransform(-center.X, -center.Y); e.Graphics.DrawPolygon(Pens.DarkGreen, points.ToArray()); } } (在“Raven-Clr-Type”属性中指示)。是否有可能以某种方式将其加载/序列化为不同的类?

A

B entity = session.Load<B>(id) A是不同的类。

编辑:我不是在谈论更改数据库中的B,而是我想知道如何将实体反序列化为与Raven-Clr-Type中指定的类不同的类。

2 个答案:

答案 0 :(得分:1)

  1. 使用&#39; patch&#39;并修改&#34; Raven-Clr-Type&#34;包含     B类的类型 -Or -
  2. 如果是A级和A级。 B具有相同的属性但是     只是一个不同的类名,可以删除A类定义     从您的代码和RavenDB将加载到B类

答案 1 :(得分:1)

这有效,但这不是最佳做法:

  var x = session.Advanced.DocumentStore.DatabaseCommands.Get("stringId/1").ToJson();
  MyType y = Newtonsoft.Json.JsonConvert.DeserializeObject<MyType>(x.ToString());