Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
    /// <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;
    }
Esempio n. 5
0
    /// <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;
      }
    }