这是我到目前为止关于MongoDB的IRepository的问题,并且想知道我是否在正确的路线上?
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名称。
我只是想确保我在正确的位置以正确的方式打开与数据库的连接。
答案 0 :(得分:1)
是的,这很好。当传递相同的连接字符串时,MongoServer.Create将返回MongoServer的相同的实例,因此可以根据需要多次调用MongoServer.Create。