Repository-Muster mit MongoDB: Wo zum initialisieren der Datenbank

Ich habe gerade angefangen zu spielen, um mit MongoDB (C#) und versucht port ein repository, über das von entity framework. Ich bin mit der offiziellen C - # - Treiber 1.0. Jetzt habe ich so etwas wie dieses:

internal class MongoContext
{
    public MongoContext(string constring)
    {
        MongoServer server = MongoServer.Create(constring);
        this.myDB = server.GetDatabase("MyDB");

        BsonClassMap.RegisterClassMap<VoyageNumber>(cm =>
            { cm.MapField<string>(p => p.Id); });
        BsonClassMap.RegisterClassMap<Schedule>(cm =>
        { cm.MapField<DateTime>(p => p.EndDate); cm.MapField<DateTime>(p => p.StartDate); });
        BsonClassMap.RegisterClassMap<Voyage>(cm =>
            { cm.MapIdField<VoyageNumber>(p => p.VoyageNumber); cm.MapField<Schedule>(p => p.Schedule); });

    }

    private MongoDatabase myDB;
    public MongoDatabase MyDB
    { get { return this.myDB; } }
}

Ich würde dann gehen Sie auf und implementieren Sie das Repository wie diese:

public class MongoVoyageRepository : IVoyageRepository
{
    private readonly MongoContext context;

    public MongoVoyageRepository(string constring)
    {
        this.context = new MongoContext(constring);
    }

    public void Store(Domain.Model.Voyages.Voyage voyage)
    {

        MongoCollection<Voyage> mongoVoyages = context.MyDB.GetCollection<Voyage>("Voyages");

        //store logic...

    }

}

Nun würde ich gerne wissen, ob es eine gute Entscheidung zu instanziieren Sie ein "Kontext", wie dies in Bezug auf Leistung. Macht es Sinn um die BsonClass Karten drin?
Vielen Dank für Ihre Eingabe.

InformationsquelleAutor hoetz | 2011-04-10
Schreibe einen Kommentar