Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MongoDB Official C# Driver in ASP.NET MVC app with Ninject dependency injection

Does anyone have a code example that follows best practices of using MongoDB Official C# Driver with Ninject in ASP.NET MVC app?

Mine looks like this:

namespace WebApp
{
    public class DataModule : NinjectModule
    {
        public override void Load()
        {
            var conventions = new ConventionProfile().SetElementNameConvention(new CamelCaseElementNameConvention());
            BsonClassMap.RegisterConventions(conventions, x => true);

            var server = MongoServer.Create(connectionString);
            var database = server.GetDatabase("webapp");
            Bind<MongoDatabase>().ToConstant(database);
        }
    }
}

Since this code is singleton, I have a bad feeling about it :|

Thanks

like image 697
Daniil Harik Avatar asked Feb 19 '23 23:02

Daniil Harik


1 Answers

MongoServer is just fine to keep as a singleton. The same is true of a MongoDatabase. They are both thread-safe and even if you create a new MongoServer and MongoDatabase every time, you will get back the same instances because they are cached underneath as long as the connection string is exactly the same.

like image 191
Craig Wilson Avatar answered May 01 '23 17:05

Craig Wilson