MongoDB IRepository数据库连接

时间:2011-05-26 13:12:42

标签: mongodb repository irepository

这是我到目前为止关于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名称。

我只是想确保我在正确的位置以正确的方式打开与数据库的连接。

1 个答案:

答案 0 :(得分:1)

是的,这很好。当传递相同的连接字符串时,MongoServer.Create将返回MongoServer的相同的实例,因此可以根据需要多次调用MongoServer.Create。