使用mongo C#驱动程序创建自定义ID

时间:2013-10-27 09:51:03

标签: mongodb mongodb-.net-driver

我正在尝试将我的类的Id属性设置为另外两个属性的组合:

   public class Student
   {
       public string Id {get;set;}
       public Guid StudentNumber {get;set;]
       public string SchoolId {get;set;}
   }

当我保存时,我希望StudentNumber和SchoolId成为对象的ID。

怎么做?

1 个答案:

答案 0 :(得分:5)

查看IdGenerator类,从两个属性中自定义创建一个id。

http://docs.mongodb.org/ecosystem/tutorial/serialize-documents-with-the-csharp-driver/

您需要创建一个实现IdGenerator接口(docs)的新IIdGenerator类。有两种简单的方法可以实现。

请注意,保存后文档的_id无法更改。您需要将其重新保存为新文档。因此,如果SchoolId属性发生更改,则可能需要重新创建文档。

此外,您可以考虑为这两个字段创建复合索引,并将_id保留为ObjectId