2011-05-26 4 views
1

C'est ce que j'ai jusqu'ici en ce qui concerne mon IRepository pour MongoDB et je me demandais si je suis sur la bonne voie ou non?MongoDB IRepository db Connexions

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(); 
    } 
} 

De cette façon, je peux créer ma classe PhotoRepository qui hérite d'ici et fournit le nom de _Collection requis.

Je veux juste m'assurer que j'ouvre la connexion à la db au bon endroit et de la bonne façon.

Répondre

1

Oui, c'est bien. MongoServer.Create renverra le même instance de MongoServer quand passé la même chaîne de connexion, ainsi il est sûr d'appeler MongoServer.Create autant de fois que vous voulez.