2016-10-03 40 views
1

是否MongoDB的C#驅動程序必須在C#類從服務器的兩個字段名稱映射到單個字段的能力嗎?地圖舊字段名稱和新的字段名稱從MongoDB的文件相同的C#領域

我們需要這個的原因是我們已經在我們的代碼中重命名了一個字段,並希望在一段時間內同時支持舊字段名稱和新字段名稱。

這是一個典型的數據遷移方案,這將是非常有益的,如果我們能夠建立一種模式,通過映射,而無需特殊版本邏輯添加到數據實體類或邏輯代碼這樣做。

我們目前正在使用與服務器V3.2官方C#驅動程序V2.3。

回答

1

我不認爲這是非常可能的。你可以做的是

  1. 創建一個新的屬性,不保存在bson中。如此使用BsonIgnore標記並填充來自您的兩個屬性的數據,並在您提供的JSON響應中公開這些數據。使用JsonIgnore確保您在那裏提供適當的忽略指令。

  2. 轉到了MongoDB中遷移techiniques。您可以使用像this one這樣的遷移工具。由於您使用的是C#驅動程序2.3.0,因此我認爲您要使用該驅動程序,並且可以使用我的叉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; 
    } 
} 
相關問題