使用C#驱动程序序列化在MongoDb中映射和索引外键

时间:2013-12-14 13:57:26

标签: c# .net mongodb mongodb-.net-driver

给出下面列出的模型我想使用MongoDb.Driver.Serialization为属性PostId创建一个IndexKey。

    public class Post
    {
        public ObjectId Id { get; private set; }
        public string Title { get; set; }
        public string Body { get; set; }
        public IList<Comment> Comments { get; set; }
    }

    public class Comment
    {

        public ObjectId Id { get; private set; }

        public string Email { get; set; }
        public string Body { get; set; }

        public ObjectId PostId { get; set; }

        public Post Post { get; set; }
    }

我想使用类似这样的东西

    MongoDB.Bson.Serialization.BsonClassMap.RegisterClassMap<Post>(p =>
    {
        p.MapIdField(f => f.Id);
    });

1 个答案:

答案 0 :(得分:0)

如果您只想将索引应用于该属性,则应使用CreateIndex 外键实际上不是NoSQL和MongoDB的一部分。它无法以与SQL数据库相同的方式实施该规则。

示例:

_databaseClient.GetServer().GetDatabase("database").
    GetCollection<Comment>("Comments").CreateIndex(
        IndexKeys<Comment>.Ascending(_ => _.PostId ));