管理MongoServer类生命周期的最佳实践是什么?我应该创建一个并在每次请求结束时将其关闭,还是应该使用诸如StructureMap之类的东西在应用程序的整个生命周期中将其保持为单例?
任何帮助表示赞赏。
最佳答案
在the official documentation中,声明MongoServer
,MongoDatabase
和MongoCollection
是线程安全的,并且应该为所连接的每个数据库创建一个单独的MongoServer
。
因此,MongoServer
,MongoDatabase
和MongoCollection
可以安全地配置为单例。 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/