Шаблон репозитория с MongoDB: где инициализировать базу данных

Я только начал экспериментировать с MongoDB (C #) и попытался перенести репозиторий из структуры сущностей. Я использую официальный драйвер C # 1.0. Я сделал что-то вроде этого:

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

Я ' d, затем продолжите и реализуйте Репозиторий следующим образом:

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...

    }

}

Теперь я хотел бы знать, является ли это хорошим решением создать экземпляр «контекста», подобного этому, с точки зрения производительности. Есть ли смысл помещать туда карты BsonClass? Спасибо за ваш вклад.

10
задан hoetz 10 April 2011 в 11:32
поделиться