MongoDB C#驱动程序是否能够将两个字段名称从服务器映射到C#类中的单个字段?
我们需要这样做的原因是我们已经在代码中重命名了一个字段,并希望在一段时间内同时支持旧字段名称和新字段名称。
这是一个典型的数据迁移场景,如果我们可以通过映射建立一个模式,而不必将特殊版本逻辑添加到数据实体类或逻辑代码,那将非常有用。
我们目前正在使用官方c#驱动程序v2.3和服务器v3.2。
答案 0 :(得分:1)
我认为这是非常可能的。你能做的是
创建一个未保存在bson中的新属性。这样使用BsonIgnore
标记并填充您的两个属性中的数据,并在您提供的JSON响应中公开该数据。使用JsonIgnore
确保在那里提供正确的忽略指令。
在Mongodb中寻找迁移技术。您可以使用this one之类的迁移工具。当您使用C#驱动程序2.3.0时,我认为您希望使用它,并且您可以使用我的fork here来实现C#驱动程序2.3.0兼容性。
数字1的代码示例:
class Data
{
[JsonIgnore]
public string OldProperty { get; set; }
public string NewProperty
{
get
{
// Return this one or the old one based on your logic
}
set;
}
}