public void Test() { var configure = new MongoConfigurationBuilder(); configure.ConnectionString(cs => { cs.Pooled = true; }); configure.Mapping(mapping => { mapping.DefaultProfile(p => { p.AliasesAreCamelCased(); p.CollectionNamesAreCamelCasedAndPlural(); }); mapping.Map <Person>(m => { m.CollectionName("people"); m.Member(x => x.Age).Alias("age"); m.Member(x => x.Name).Alias("name").DefaultValue("something").Ignore(); }); }); }
private static MongoConfiguration GetConfiguration <T>() where T : class { var config = new MongoConfigurationBuilder(); config.Mapping(mapping => { mapping.DefaultProfile(d => d.SubClassesAre(s => s.IsSubclassOf(typeof(T)))); mapping.Map <T>(); }); config.ConnectionString(Resources.ConnectionString); return(config.BuildConfiguration()); }
// 为Mongo 提供 MongoConfiguration public MongoConfiguration InitMongoBuilder(string ConnString) { var config = new MongoConfigurationBuilder(); //加入连接字符串 config.ConnectionString(ConnString); //映射公共类 BaseMapping mapping = new BaseMapping(); //向映射公共类注册自己定义映射 mapping.AddMapping(new MyMapping().Mapping); //传入公共类的执行方法 config.Mapping(mapping.ForeachMapping); return(config.BuildConfiguration()); }
private Mongo GetMongo() { var config = new MongoConfigurationBuilder(); config.Mapping(mapping => { mapping.DefaultProfile(profile => { profile.SubClassesAre(t => t.IsSubclassOf(typeof(T))); }); mapping.Map <T>(); }); config.ConnectionString(connectionString); return(new Mongo(config.BuildConfiguration())); }
private static MongoConfiguration BuildMongoConfiguration(ITypeCatalog snapshotTypeCatalog, string connectionString) { var configurationBuilder = new MongoConfigurationBuilder(); configurationBuilder.ConnectionString(connectionString); configurationBuilder.Mapping(mapping => { mapping.DefaultProfile(profile => profile.SubClassesAre(type => type.IsSubclassOf(typeof(Snapshot)))); snapshotTypeCatalog .GetDerivedTypes(typeof(Snapshot)) .ToList() .ForEach(type => MapEventType(type, mapping)); }); return(configurationBuilder.BuildConfiguration()); }
public static void Main(string[] args) { var config = new MongoConfigurationBuilder(); // COMMENT OUT FROM HERE config.Mapping(mapping => { mapping.DefaultProfile(profile => { profile.SubClassesAre(t => t.IsSubclassOf(typeof(MyClass))); }); mapping.Map <MyClass>(); mapping.Map <SubClass>(); }); // TO HERE config.ConnectionString("Server=127.0.0.1"); using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); try { var db = mongo.GetDatabase("TestDb"); var collection = db.GetCollection <MyClass>(); MyClass square = new MyClass() { Corners = 4, Name = "Square" }; MyClass circle = new MyClass() { Corners = 0, Name = "Circle" }; SubClass sub = new SubClass() { Name = "SubClass", Corners = 6, Ratio = 3.43 }; collection.Save(square); collection.Save(circle); collection.Save(sub); var superclass = (from item in db.GetCollection <MyClass>("MyClass").Linq() where item.Corners > 1 select item.Corners).ToList(); var subclass = (from item in db.GetCollection <SubClass>("MyClass").Linq() where item.Ratio > 1 select item.Corners).ToList(); Console.WriteLine("Count by LINQ on typed collection: {0}", collection.Linq().Count(x => x.Corners > 1)); Console.WriteLine("Count by LINQ on typed collection2: {0}", db.GetCollection <SubClass>().Linq().Count(x => x.Corners > 1)); //Console.WriteLine("Count by LINQ on typed collection3: {0}", db.GetCollection<SubClass>().Count(new { Corners = Op.GreaterThan(1) })); Console.WriteLine("Count on typed collection: {0}", collection.Count(new { Corners = Op.GreaterThan(1) })); var coll = db.GetCollection("MyClass"); var count = coll.Count(new Document("Corners", Op.GreaterThan(1))); Console.WriteLine("Count: {0}", count); Console.ReadKey(); } finally { mongo.Disconnect(); } } //var main = new MainClass(); //main.Setup(); //main.Run(); }