Sadece MongoDB (C#) ile oynamaya başladım ve varlık çerçevesinden bir depoyu göndermeye çalıştım. Resmi C# sürücüsü 1.0 kullanıyorum.MongoDB ile Depozit Modeli: Veritabanının nerede başlatılacağı
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; } }
}
Sonra gidip böyle depoyu uygulamak istiyorum:
Şimdipublic 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...
}
}
Ben bir örneğini iyi bir karar olup olmadığını bilmek istiyorum Şimdi böyle bir şey yaptılar performans bağlamında bunun gibi "içerik". BsonClass Haritalarını oraya koymak mantıklı mı? Girişiniz için teşekkür ederiz.
Bu çalışır, ancak ben Instance özelliğini, bağlantı dizesini depoya (IoC) enjekte etmek istediğim için bir bağlantı dizesini kabul eden bir yönteme dönüştürdüm. – hoetz
@Malkier: Ayrıca IoC adn DI kullanıyordum, 'Instance' yaptık, çünkü pek çok dev IoC, DI hakkında bilgi sahibi değil, ya da hiç de zor değil;) –
@AndrewOrsich 'NoDefaultPropertyIdConvention' sınıfı nedir? –