예제 #1
0
파일: Rowsets.cs 프로젝트: vlapchenko/nfx
        public void PopulateAndDeleteNonExisting()
        {
            var tbl = new Rowset(Schema.GetForTypedRow(typeof(Person)));

            for(var i=0; i<1000; i++)
             tbl.Insert( new Person{
                                    ID = "POP{0}".Args(i),
                                    FirstName = "Oleg",
                                    LastName = "Popov-{0}".Args(i),
                                    DOB = new DateTime(1953, 12, 10),
                                    YearsInSpace = 12
                                   });

            var delete =  new Person{
                                    ID = "NONE17"
                                   };

            var idx = tbl.Delete( delete );//<-------------!!!!!!

            Assert.IsTrue( idx==-1 );
            Assert.AreEqual(1000, tbl.Count);

            var match = tbl.FindByKey("POP17") as Person;
            Assert.IsNotNull( match );
        }
예제 #2
0
파일: Rowsets.cs 프로젝트: vlapchenko/nfx
        public void LogChanges_Delete()
        {
            var tbl = new Rowset(Schema.GetForTypedRow(typeof(Person)));

            tbl.Insert( new Person{
                                    ID = "POP1",
                                    FirstName = "Oleg",
                                    LastName = "Popov",
                                    DOB = new DateTime(1953, 12, 10),
                                    YearsInSpace = 12
                                   });
            tbl.LogChanges = true;

            tbl.Delete( tbl[0] );

            Assert.AreEqual(1, tbl.ChangeCount);
            Assert.AreEqual(0, tbl.Count);

            Assert.AreEqual(RowChangeType.Delete, tbl.GetChangeAt(0).Value.ChangeType);
        }
예제 #3
0
        public void Save()
        {
            var rowset = new Rowset(Schema.GetForTypedRow(typeof(MyPerzon)));
              rowset.LogChanges = true;

              for(var i=0; i<100; i++)
              {
            rowset.Insert( new MyPerzon
            {
               GDID = new GDID(1, 1, (ulong)i),
               Name = "Jeka Koshmar",
               Age = i
            });
              }

              var qryBetween5060 = new Query("CRUD.LoadPerzonsInAgeSpan", typeof(MyPerzon))
                           {
                             new Query.Param("fromAge", 50),
                             new Query.Param("toAge", 60)
                           };

              var rs = store.LoadOneRowset(qryBetween5060);
              Assert.IsNotNull( rs );

              Assert.AreEqual(0, rs.Count);

              store.Save(rowset);
              rowset.PurgeChanges();

              rs = store.LoadOneRowset(qryBetween5060);
              Assert.IsNotNull( rs );

              Assert.AreEqual(9, rs.Count);

              rowset[55]["Age"] = 900;  //falls out of query
              rowset.Update(rowset[55]);
              rowset.Delete(rowset[59]); //physically deleted
              store.Save(rowset);

              rs = store.LoadOneRowset(qryBetween5060);
              Assert.IsNotNull( rs );

              Assert.AreEqual(7, rs.Count);
              Assert.AreEqual(58, rs.First()["Age"]);
              Assert.AreEqual(51, rs.Last()["Age"]);
        }