Vinny,
Nikdy jsem nepoužíval Ninject, takže bych mohl být daleko s tímto návrhem. Zdá se však možné, že statická instance MongoSession může udržovat otevřená připojení. Zkoušeli jste TransientBehavior místo SingletonBehavior? Nebo možná změňte svůj kód tak, aby volal Dispose (nebo použijte pomocí) poté, co převedete své ShortcutLinks na seznam? Vše
var shortcutLionks = _session.All<ShortcutLinks>().ToList();
_session.Dispose();
Lepším přístupem by mohlo být použití nějakého druhu úložiště nebo DAO, kde jsou podrobnosti o relaci skryty před řadičem. Mám vzorek RepositoryBase na http:/ /www.codevoyeur.com/Articles/20/A-NoRM-MongoDB-Repository-Base-Class.aspx .
Stuart Harris má podobnou, pravděpodobně úplnější implementaci na http://red-badger.com/Blog/post/A-simple-IRepository3cT3e-implementation-for-MongoDB-and-NoRM.aspx
Vytvoření sdružených připojení MongoDB je relativně levné, takže je pravděpodobně nejlepší zajistit, aby se metody přístupu k datům po dokončení získávání/ukládání dat zlikvidovaly.