#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.Создавайте столько раз, сколько захотите.