Шаблоны для клиента Mongodb c # - PullRequest
0 голосов
/ 03 января 2012

Я хочу использовать mongodb для проекта.

ОК, да, я могу подключиться к нему и что-то делать.

Однако я хочу иметь возможность обернуть драйвер mongodb вокругОбертка, поэтому, если я хочу изменить базу данных, я хочу, чтобы ее легко было изменить.

Шаблон репозитория выглядит как то, что я могу использовать с Mongodb, но я немного обдумываю, где начать соединение?я должен использовать синглтон?

Документы Mongodb говорят, что это потокобезопасно, поэтому, если я создаю один класс MongoServer и один класс MongoDatabase через Singleton и для каждой коллекции, у меня может быть метод, который возвращает коллекции.плохой дизайн?

Что было бы лучше дизайна?

Я хочу использовать синглтон для создания соединения с базой данных, потому что я не хочу продолжать создавать соединение для потока, если уже существует постоянныйсоединение.

есть опыт с этим?

1 Ответ

1 голос
/ 03 января 2012
  • Соединения объединяются, поэтому, если вы закончили с ним в одном потоке, он будет иметь право на повторное использование в других потоках
  • Вы можете сделать шаблон хранилища до уровня Collection.Вот как это делается в стороннем MongoDB Driver
  • Я не вижу необходимости делать это в любом случае.Вы можете использовать метод MongoDatabase.Create(MongoUrl) со строкой подключения.Он уже делает абстракцию для вас с точки зрения имени сервера и базы данных
...