管理MongoServer类生命周期的最佳实践是什么?我应该创建一个并在每次请求结束时将其关闭,还是应该使用诸如StructureMap之类的东西在应用程序的整个生命周期中将其保持为单例?

任何帮助表示赞赏。

最佳答案

the official documentation中,声明MongoServerMongoDatabaseMongoCollection是线程安全的,并且应该为所连接的每个数据库创建一个单独的MongoServer

因此,MongoServerMongoDatabaseMongoCollection可以安全地配置为单例。 MongoServer甚至可以通过为后续调用返回相同的MongoDatabase实例来帮助强制执行此操作,而MongoDatabase会对MongoCollection进行相同的操作。

IE。您可以将MongoServer实例安全地配置为在IoC容器中具有单例生活方式,并且您最好为MongoDatabase甚至是MongoCollection设置注入(inject)。

我本人正在与温莎一起使用这种策略-您可以在这里看到我的MongoInstaller:https://gist.github.com/2427676-它允许我的类(class)继续进行:

public class SomeClass
{
    public SomeClass(MongoCollection<Person> people)
    { ... }
}

为了注入(inject)一个收藏,很好并且可以使用。

关于c# - 在ASP.Net MVC中管理MongoDB连接的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10241641/

10-12 21:05