2015-09-08 89 views
0
public class SubClass { 
    public bool isValid { 
    get; 
    set; 
    } 
} 

public class MainClass { 
    public List <SubClass> SubClasses { 
    get; 
    set; 
    } 
} 

MainClass m = new MainClass() { 
    Name = "Mohsen", SubClasses = new List <SubClass> (new SubClass[] { 
    new SubClass() { 
     IsValid = true 
    } 
    }) 
}; 
MongoMainClassCollection.Save <MainClass> (m); 

問題是,所有SubClass ID的默認值爲零。
我希望MongoDB爲任何子類分配一個唯一的ID,只要我保存一個MainClass。如何設置MongoDB自動爲每個子文檔分配ID?

有沒有辦法配置MongoDB來做到這一點?

回答

1

MongoDB不會自動爲你做這件事。 MongoDB不會將ID添加到子文檔中。最好的辦法是在你的子類構造函數中添加一些東西來自動填充你的ID。

public class SubDocument { 
    //if using objectId as ID 
    public ObjectId Id = { get; set;} 

    public SubDocument(){ 
     Id = ObjectId.GenerateNewId() 
    } 

} 
+0

謝謝。您是否也可以提供代碼,以便我可以選擇作爲答案 –

+0

代碼是無關緊要的,您可以通過幾種方式實現代碼,具體取決於您想要設置Id的方式以及您希望將Id設置爲何種類型。 – ThrowsException

+0

謝謝,我試圖將對象保存在它的構造函數中,以便分配ID。但是,這導致了很多副作用,例如保存空對象。任何幫助我自動分配ID的代碼都是完全相關的! –

相關問題