2011-05-26 162 views
1

這是我迄今爲止關於MongoDB的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名稱。

我只是想確保我在正確的位置以正確的方式打開與db的連接。

回答

1

是的,這很好。當傳遞相同的連接字符串時,MongoServer.Create將返回相同的 MongoServer實例,因此可以根據需要多次調用MongoServer.Create。