默认ID在MongoDb中生成00000

时间:2015-04-01 08:05:05

标签: c# asp.net mongodb

我有DB结构如下。

public class University
    {
        [BsonId]
        public ObjectId Id { get; set; }
        public string Name { get; set; }
        public string Code { get; set; }
        public IList<College> Colleges { get; set; }
    }
    public class College
    {
        [BsonId]
        public ObjectId Id { get; set; }
        public string Name { get; set; }
        public string Code { get; set; }
    }

如您所见,一所大学可以拥有多所大学。 我正在添加数据如下

IList<College> lstColleges=new List<College>();

    College clg1=new College(){
        Name="Clg1",
        Code="CLG1001"
    };

    College clg2=new College(){
        Name="Clg2",
        Code="CLG1002"
    };

    lstColleges.Add(clg1);
    lstColleges.Add(clg2);

    University unv=new University(){
        Name="UNIV",
        Code="UN101",
        Colleges=lstColleges
    };
    var collections = mongoDatabase.GetCollection<University>("University");
        collections.Insert(unv);
        var id = student.unv;

正确地为大学生成Id,但是对于每个大学来说,它正在产生000000.

我想为每个大学生成不同的默认ID。

1 个答案:

答案 0 :(得分:1)

仅自动分配顶级_id 嵌入式文档中的内容需要手动生成。

您可以在ctor中执行此操作:

public class College
{
    public  College 
    {
        Id = ObjectId.GenerateNewId();        
    }

    [BsonId]
    public ObjectId Id { get; set; }
    public string Name { get; set; }
    public string Code { get; set; }
}