public T Pick <T>(Expression <Func <T, bool> > where) where T : IEntity
        {
            var t = GetAll <T>().SingleOrDefault(where.Compile());

            if (t == null)
            {
                t = MongoEntity.Get <T>(where);
            }
            Add <T>(t);
            return(t);
        }
        public T Pick <T>(string id) where T : IEntity
        {
            var t = getContainer <T>().SingleOrDefault(e => e.Id == id);

            if (t == null)
            {
                t = MongoEntity.Get <T>(id);
            }
            Add <T>(t);
            return(t);
        }