C# 如何设置MongoDB自动为每个子文档分配ID? 公共类子类{ 公共布尔是有效的{ 得到; 设置 } } 公共类主类{ 公共列表子类{ 得到; 设置 } } MainClass m=新的MainClass(){ Name=“Mohsen”,SubClass=new List(new SubClass[]{ 新的子类(){ IsValid=true } }) }; MongoMainClassCollection.Save(m);
问题是所有子类ID的默认值都是零。C# 如何设置MongoDB自动为每个子文档分配ID? 公共类子类{ 公共布尔是有效的{ 得到; 设置 } } 公共类主类{ 公共列表子类{ 得到; 设置 } } MainClass m=新的MainClass(){ Name=“Mohsen”,SubClass=new List(new SubClass[]{ 新的子类(){ IsValid=true } }) }; MongoMainClassCollection.Save(m);,c#,mongodb,mongodb-query,C#,Mongodb,Mongodb Query,问题是所有子类ID的默认值都是零。 每当我保存MainClass时,我希望MongoDB为任何子类分配一个唯一的ID 有没有办法配置MongoDB来实现这一点 MongoDB不会自动为您执行此操作。MongoDB不会将ID添加到子文档中。最好的办法是在子类构造函数中添加一些东西来自动填充ID public class SubClass { public bool isValid { get; set; } } public class MainClass {
每当我保存MainClass时,我希望MongoDB为任何子类分配一个唯一的ID
有没有办法配置MongoDB来实现这一点 MongoDB不会自动为您执行此操作。MongoDB不会将ID添加到子文档中。最好的办法是在子类构造函数中添加一些东西来自动填充ID
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);
非常感谢。您还可以提供代码,以便我选择作为答案。代码与问题无关。您可以通过多种方式实现它,具体取决于您希望如何设置Id以及希望将Id设置为什么类型。谢谢,我已尝试将对象保存在其构造函数中,以便分配Id。然而,这会产生很多副作用,比如保存空对象。任何帮助我自动分配ID的代码都是完全相关的!您没有将子文档保存在构造函数中,只需要为您的ID分配一个值。
public class SubDocument {
//if using objectId as ID
public ObjectId Id = { get; set;}
public SubDocument(){
Id = ObjectId.GenerateNewId()
}
}