MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara menerapkan atribut BsonRepresentation dengan konvensi saat menggunakan MongoDB

Ya, saya perhatikan itu juga. Implementasi saat ini dari StringObjectIdIdGeneratorConvention tampaknya tidak bekerja untuk beberapa alasan. Inilah salah satu yang berfungsi:

public class Person
{
    public string Id { get; set; }
    public string Name { get; set; }
}

public class StringObjectIdIdGeneratorConventionThatWorks : ConventionBase, IPostProcessingConvention
{
    /// <summary>
    /// Applies a post processing modification to the class map.
    /// </summary>
    /// <param name="classMap">The class map.</param>
    public void PostProcess(BsonClassMap classMap)
    {
        var idMemberMap = classMap.IdMemberMap;
        if (idMemberMap == null || idMemberMap.IdGenerator != null)
            return;
        if (idMemberMap.MemberType == typeof(string))
        {
            idMemberMap.SetIdGenerator(StringObjectIdGenerator.Instance).SetSerializer(new StringSerializer(BsonType.ObjectId));
        }
    }
}

public class Program
{
    static void Main(string[] args)
    {
        ConventionPack cp = new ConventionPack();
        cp.Add(new StringObjectIdIdGeneratorConventionThatWorks());
        ConventionRegistry.Register("TreatAllStringIdsProperly", cp, _ => true);

        var collection = new MongoClient().GetDatabase("test").GetCollection<Person>("persons");

        Person person = new Person();
        person.Name = "Name";

        collection.InsertOne(person);

        Console.ReadLine();
    }
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Batas =1 =1 md, Batas> 1 =150 md (mongo-melt-down)

  2. Koneksi AngularJS dengan MongoDB

  3. Cegah kepanikan runtime di bson.ObjectIdHex

  4. Membuat area admin dalam lima menit dengan AdminBro, express, mongoDB, luwak

  5. Membuat id objek pendek dan unik di MongoDB