Подключения к базе данных MongoDB IRepository

#mongodb #repository #irepository

#mongodb #репозиторий #irepository

Вопрос:

Это то, что у меня есть на данный момент в отношении моего IRepository для MongoDB, и мне было интересно, нахожусь ли я на правильном пути?

 public abstract class Repository<TEntity> : IRepository<TEntity> {

    private const string _connection = "mongodb://localhost:27017/?safe=true";
    private MongoDatabase _db;
    protected abstract string _collection{get;}

    public Repository() {
        this._db = MongoServer.Create(_connection).GetDatabase("Photos");
    }

    public IQueryable<TEntity> FindAll() {

        return this._db.GetCollection<TEntity>(_collection).FindAll().AsQueryable();
    }
}
  

Таким образом, я могу создать свой класс PhotoRepository, который наследуется отсюда и предоставляет требуемое имя _collection.

Я просто хочу убедиться, что я открываю соединение с БД в правильном месте и правильным способом.

Ответ №1:

Да, это нормально. MongoServer.Create вернет тот же экземпляр MongoServer при передаче той же строки подключения, поэтому безопасно вызывать MongoServer.Создавайте столько раз, сколько захотите.