示例#1
0
        public void DynamicCrudTest()
        {
            FileInfo        inputFile = new FileInfo("c:\\BamTestData\\Db_SillydatabaseNameMap_NormalizEDOnTypes.json");
            SchemaNameMap   map       = SchemaNameMap.Load(inputFile.FullName);
            DynamicDatabase db        = new DynamicDatabase(GetDatabase(), map);
            var             bryan     = new
            {
                Type  = "Customer",
                Where = new
                {
                    FirstName = "Bam"
                }
            };

            db.Delete(bryan);
            var retrieved = db.RetrieveFirst(bryan);

            Expect.IsNull(retrieved);
            db.Create(Reflect.Combine(bryan, new
            {
                FirstName = "Bam",
                LastName  = "Apellanes",
                Birthday  = new DateTime(1976, 11, 1),
                Age       = 38
            }));
            db.Create(Reflect.Combine(bryan, new
            {
                FirstName = "Bam",
                LastName  = "Banana",
                Birthday  = new DateTime(1974, 1, 1),
                Age       = 10
            }));
            var query = new
            {
                TableName = "Customer",
                Where     = new
                {
                    FirstName = "Bam"
                }
            };

            dynamic[] results = db.Retrieve(query).ToArray();
            Expect.AreEqual(2, results.Length);
            OutLine("Results after insert", ConsoleColor.Cyan);
            foreach (object result in results)
            {
                OutLine(result.PropertiesToString(), ConsoleColor.Cyan);
            }
            db.Delete(new
            {
                Type  = "Customer",
                Where = new
                {
                    LastName = "Apellanes",
                    Or       = new
                    {
                        LastName = "Banana"
                    }
                }
            });
            results = db.Retrieve(query).ToArray();
            Expect.AreEqual(0, results.Length, "Should have got no results");
        }