我很新的MongoDB和NoSQL一般和我剛開始建立一個網站用的MongoDB /規範/ ASP.NET MVC 3什麼時候應該打開和關閉MongoDB連接?
我想知道我應該如何劃定範圍,以我的Mongo的數據庫的連接。
現在我有一個Basecontroller是instanciates的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);
}
}
另一個跟進的問題是:
正在打開,並通過規範的MongoDB關閉連接「昂貴」的操作?
規範是很難維持下去了,如果你想LINQ支持,在它的上面有FluentMongo官方蒙戈司機去。 – 2012-02-07 13:37:05
除了打開和關閉連接上的代碼這個問題,我的問題與互聯網服務提供商關閉連接,然後有EndOfStreamException我的代碼。我解決它通過使用settings.MaxConnectionIdleTime = TimeSpan.FromSeconds(30); https://stackoverflow.com/a/44606284/194717 – Tony 2017-06-17 22:12:14