MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách áp dụng thuộc tính BsonRepresentation theo quy ước khi sử dụng MongoDB

Vâng, tôi cũng nhận thấy điều đó. Việc triển khai hiện tại của StringObjectIdIdGeneratorConvention dường như không hoạt động vì một số lý do. Đây là một trong những hoạt động:

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. Lọc quần thể lồng nhau là MongoDB

  2. Tự động hóa và quản lý cơ sở dữ liệu nguồn mở trong đám mây - Công bố ClusterControl 1.6

  3. MongoDB Java kéo

  4. Không thể nhận các giá trị thuộc tính dirtyPropertyNames cho các trường liên kết trong grails

  5. mongo $ sum gộp khi thực hiện $ unwind và sau đó $ group trên nhiều trường