private static void TestMagpieDatabase() { MagpieServer server = MagpieServer.Create(@"C:\tmp"); MagpieDatabase database = server.GetDatabase("test"); MagpieCollection <Cat> catCollection = database.GetCollection <Cat>("cat"); MagpieCollection <Dog> dogCollection = database.GetCollection <Dog>("dog"); Console.WriteLine("Save One Cat"); Cat origin = new Cat() { Name = "Garfield", Legs = 4 }; catCollection.Save <Cat>(origin); Console.WriteLine("Retrieve One Cat"); Cat retrieve = catCollection.FindOneById(origin.Id); Console.WriteLine(retrieve.ToString()); Console.WriteLine("Retrieve All Cat"); foreach (var item in catCollection.FindAll()) { Console.WriteLine(item.ToString()); } Console.WriteLine("Remove One Cat"); Console.WriteLine(origin.ToString()); catCollection.Remove(origin.Id); Console.WriteLine("Retrieve All Cat"); foreach (var item in catCollection.FindAll()) { Console.WriteLine(item.ToString()); } Console.WriteLine("Remove All Cat"); catCollection.RemoveAll(); Console.WriteLine("Retrieve All Cat"); foreach (var item in catCollection.FindAll()) { Console.WriteLine(item.ToString()); } Console.WriteLine("Save One Dog"); Dog originDog = new Dog() { Name = "Spotted Dog", Legs = 4 }; dogCollection.Save <Dog>(originDog); Console.WriteLine("Retrieve One Dog"); Dog retrieveDog = dogCollection.FindOneById(originDog.Id); Console.WriteLine(retrieveDog.ToString()); }
public Database(string path, string databaseName) { if (string.IsNullOrEmpty(path)) throw new ArgumentNullException("path"); if (string.IsNullOrEmpty(databaseName)) throw new ArgumentNullException("databaseName"); _server = MagpieServer.Create(path); _database = _server.GetDatabase(databaseName); }
public Database(string path, string databaseName) { if (string.IsNullOrEmpty(path)) { throw new ArgumentNullException("path"); } if (string.IsNullOrEmpty(databaseName)) { throw new ArgumentNullException("databaseName"); } _server = MagpieServer.Create(path); _database = _server.GetDatabase(databaseName); }
/// <summary> /// 集合配置 /// </summary> /// <param name="database">集合所属数据库</param> /// <param name="collectionName">集合名称</param> /// <param name="defaultDocumentType">默认的文档类型</param> protected MagpieCollectionSettings(MagpieDatabase database, string collectionName, Type defaultDocumentType) { if (database == null) { throw new ArgumentNullException("database"); } if (collectionName == null) { throw new ArgumentNullException("collectionName"); } if (defaultDocumentType == null) { throw new ArgumentNullException("defaultDocumentType"); } _database = database; _collectionName = collectionName; _defaultDocumentType = defaultDocumentType; }
/// <summary> /// 获取指定配置的数据库 /// </summary> /// <param name="databaseSettings">数据库配置</param> /// <returns>数据库</returns> protected virtual MagpieDatabase GetDatabase(MagpieDatabaseSettings databaseSettings) { if (databaseSettings == null) throw new ArgumentNullException("databaseSettings"); lock (_serverLock) { MagpieDatabase database; if (!_databases.TryGetValue(databaseSettings, out database)) { database = new MagpieDatabase(this, databaseSettings); _databases.Add(databaseSettings, database); Directory.CreateDirectory(databaseSettings.Path); } return database; } }