Storing Enums as strings in MongoDB

后端 未结 9 1252
盖世英雄少女心
盖世英雄少女心 2020-12-08 03:50

Is there a way to store Enums as string names rather than ordinal values?

Example:

Imagine I\'ve got this enum:

public enum Gender
{
    Fema         


        
9条回答
  •  眼角桃花
    2020-12-08 04:24

    You can customize the class map for the class that contains the enum and specify that the member be represented by a string. This will handle both the serialization and deserialization of the enum.

    if (!MongoDB.Bson.Serialization.BsonClassMap.IsClassMapRegistered(typeof(Person)))
          {
            MongoDB.Bson.Serialization.BsonClassMap.RegisterClassMap(cm =>
             {
               cm.AutoMap();
               cm.GetMemberMap(c => c.Gender).SetRepresentation(BsonType.String);
    
             });
          }
    

    I am still looking for a way to specify that enums be globally represented as strings, but this is the method that I am currently using.

提交回复
热议问题