Vous pouvez certainement stocker tous vos documents dans une collection, mais il est probablement plus facile et plus propre à long terme de ne stocker qu'un seul type dans une collection (du point de vue C#). Vous pouvez le faire en créant une classe avec une méthode d'extension sur MongoDatabase.
public static class MyDatabase
{
public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
{
var name = typeof(T).Name;
return db.GetCollection<T>(name);
}
}
Ensuite, vous pouvez simplement appeler GetCollection avec votre type dessus et le nom sera caché de votre code général. Vous pouvez également créer quelque chose comme ceci pour résumer un peu plus les choses :
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
Avec cela, vous pouvez simplement faire
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
Cette Find
mappera pour s'exécuter sur les Objects
collection, remplacez simplement <object>
avec votre type et donnez un nom à la collection.