2015-09-08 2 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 имеют значение по умолчанию, равное нулю.
Я хочу, чтобы MongoDB назначал уникальный идентификатор для любого SubClass всякий раз, когда я сохраняю MainClass.Как установить MongoDB автоматически присваивать идентификатор каждому поддоку?

Есть ли способ настроить MongoDB для этого?

ответ

1

MongoDB не сделает это автоматически для вас. MongoDB не добавляет идентификаторы в поддокументы. Лучше всего было бы добавить что-то в свой конструктор Subclass, чтобы автоматически заполнить идентификатор для вас.

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

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

} 
+0

спасибо. Не могли бы вы также предоставить код, чтобы я мог выбирать как ответ. –

+0

Код не имеет значения, вы можете реализовать его несколькими способами в зависимости от того, как вы хотели установить идентификатор и какой тип, на который вы хотите установить идентификатор. – ThrowsException

+0

Спасибо, я попытался сохранить объект в его конструкторе, чтобы назначить идентификатор. Однако это вызвало множество побочных эффектов, таких как сохранение пустых объектов. Любой код, который поможет мне присвоить идентификатор автоматически, абсолютно уместен! –

Смежные вопросы