/// <summary> /// 获取mongo单例 /// </summary> /// <param name="url">连接字符串</param> /// <param name="database">数据库</param> /// <returns></returns> public static MongoDbClient GetInstance(string url, string database) { InstancePool.TryGetValue(url + database, out var instance); if (instance is null) { instance = new MongoDbClient(url, database); InstancePool.TryAdd(url + database, instance); } return(instance); }
/// <summary> /// 获取mongo默认单例 /// </summary> /// <param name="database">数据库</param> /// <returns></returns> public static MongoDbClient GetDefaultInstance(string database) { string cs = ConfigurationManager.ConnectionStrings["MongoDB"].ConnectionString ?? "mongodb://127.0.0.1:27017"; InstancePool.TryGetValue(cs + database, out var instance); if (instance is null) { instance = new MongoDbClient(cs, database); InstancePool.TryAdd(cs + database, instance); } return(instance); }
/// <summary> /// 获取mongo线程内唯一对象 /// </summary> /// <param name="url">连接字符串</param> /// <param name="database">数据库</param> /// <returns></returns> public static MongoDbClient ThreadLocalInstance(string url, string database) { MongoDbClient instance; if (CallContext <MongoDbClient> .GetData(url + database) == null) { instance = new MongoDbClient(url, database); CallContext <MongoDbClient> .SetData(url + database, instance); } instance = CallContext <MongoDbClient> .GetData(url + database); return(instance); }