在数据库中,我已经存储了数百个文档。现在系统架构发生了变化,(除其他外)模型被迁移到不同的命名空间(在不同的程序集中)。下面显示了示例文档的元数据: 和我用来获取此类文档的代码:var configuration = documentSession.Load<One.Social.Core.Entities.Setting>("Setting");抛出类型转换异常:[InvalidCastException: Unable to cast object of type 'One.QA.Core.Entities.Setting' to type 'One.Social.Core.Entities.Setting'.] 更新:类似的错误,但来自 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; } }}答案命名空间已更改。此外,现在它是从 IList 派生的,没有 ICollection。我现在不需要 $type 元,它应该是: 。虽然它现在是一个列表,但由于旧的 $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'.迁移所有文档以反射(reflect)当前类型名称的最佳方法是什么?是否有任何内置机制?顺便说一句:我正在使用 RavenDB - Build #960 最佳答案 杰瑞克,问题的原因是您同时拥有这两种类型。如果您删除 QA 类型,它将正常工作。或者,您可以按照怀亚特的建议进行操作并强制执行此操作。关于.net - RavenDB 在模型命名空间更改后抛出转换异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11224248/
10-13 08:27