一般来说,我对 MongoDB 和 NoSQL 很陌生,我刚刚开始使用 MongoDB / Norm / ASP.NET MVC 3 构建一个站点。
我想知道我应该如何确定与我的 Mongo 数据库的连接范围。
现在我有一个 Basecontroller 实例化 MongoSession 和 onActionExecuted 我处理它,所以我所有的派生控制器都可以访问我的 MongoSession。MongoSession 类在其构造函数中打开一个连接并将其释放到 Dispose() 上,这是它目前的工作方式。
private IMongo _mongo;
public MongoSession()
{
_mongo = Mongo.Create("connString");
}
public void Dispose()
{
_mongo.Dispose();
}
我有点担心如果我还在控制器中做其他事情,它可能会保持连接打开太久。
这种方法是否足以避免打开太多连接的风险,或者我应该做一些更像下面的示例方法的事情?
public void Add<T>(T item) where T : class, new()
{
using (var mongo = Mongo.Create("connString"))
{
mongo.GetCollection<T>().Insert(item);
}
}
另一个后续问题是:
是否通过 Norm “昂贵”的操作打开和关闭 MongoDB 连接?