1

これは、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();
    }
}

このようにして、ここから継承し、必要な _collection 名を提供する PhotoRepository クラスを作成できます。

正しい場所で正しい方法でデータベースへの接続を開いていることを確認したいだけです。

4

1 に答える 1

1

はい、これでいいです。MongoServer.Create は、同じ接続文字列が渡されたときに MongoServerの同じインスタンスを返すため、MongoServer.Create を何度でも安全に呼び出すことができます。

于 2011-05-26T17:26:01.420 に答える