在数据库中,我已经存储了数百个文档.现在,系统架构已经发生了变化,并且(其中)模型被迁移到不同的命名空间(在不同的程序集中).
下面显示了示例文档的元数据:

和代码我用来获取这样的文件:
var configuration = documentSession.Load<One.Social.Core.Entities.Setting>("Setting");
Run Code Online (Sandbox Code Playgroud)
抛出铸造异常:
[InvalidCastException: Unable to cast object of type 'One.QA.Core.Entities.Setting' to type 'One.Social.Core.Entities.Setting'.]
Run Code Online (Sandbox Code Playgroud)
更新:
类似的错误但是从NewtonsoftJson上升,而我在dosument里面有指定类型的集合,现在已经改变了.
在数据库中我有问题文档,其中包含一个答案列表:

在代码中,类型看起来像这样:
namespace One.Social.Ask.Web.Models
{
public class Question
{
public string Content { get; set; }
public IList<One.Social.Ask.Web.Models.Answer> Answers { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
Answers命名空间已更改.另外,现在它来自IList <>,没有ICollection <>.我现在不需要$typemeta,它应该是:
.
虽然它现在是一个列表,但由于旧$type信息,错误会增加:
Newtonsoft.Json.JsonSerializationException: Error resolving type specified in JSON 'System.Collections.ObjectModel.Collection`1[[One.QA.Core.Entities.Answer, One.QA.Core]], mscorlib'. ---> Newtonsoft.Json.JsonSerializationException: Could not find type 'System.Collections.ObjectModel.Collection`1[[One.QA.Core.Entities.Answer, One.QA.Core]]' in assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Run Code Online (Sandbox Code Playgroud)
迁移所有文档以反映当前类型名称的最佳方法是什么?有内置机制吗?
顺便说一下:我正在使用RavenDB - Build#960
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |