public void TestSlave()
        {
            var cache = new SingleEntityCache <Int32, User> {
                Expire = 1
            };

            cache.FindSlaveKeyMethod = k => User.Find(User._.Name == k);
            cache.GetSlaveKeyMethod  = e => e.Name;

            // 首次访问
            var user = cache.GetItemWithSlaveKey("admin");

            Assert.Equal(0, cache.Success);

            // 再次访问
            var user2 = cache.GetItemWithSlaveKey("admin");

            Assert.Equal(1, cache.Success);

            Thread.Sleep(cache.Expire * 1000 + 10);

            // 再次访问
            var user3 = cache.GetItemWithSlaveKey("admin");

            Assert.Equal(2, cache.Success);
        }
        public void TestKey()
        {
            var cache = new SingleEntityCache <Int32, User> {
                Expire = 1
            };

            // 首次访问
            XTrace.WriteLine("首次访问");
            var user = cache[1];

            Assert.Equal(0, cache.Success);

            // 再次访问
            XTrace.WriteLine("再次访问");
            var user2 = cache[1];

            Assert.Equal(1, cache.Success);

            Thread.Sleep(cache.Expire * 1000 + 10);

            // 三次访问
            XTrace.WriteLine("三次访问");
            var user3 = cache[1];

            Assert.Equal(2, cache.Success);
        }
Beispiel #3
0
 static Post()
 {
     _cache = new SingleEntityCache <Int32, Post>();
     _cache.FindKeyMethod = id =>
     {
         var list = FindAll(_.Tid == id & _.Layer == 0, null, null, 0, 1);
         return(list.Count > 0 ? list[0] : null);
     };
 }
        public void Test1()
        {
            var cache = new SingleEntityCache <Int32, User>();

            Assert.Equal(10, cache.Expire);
            Assert.Equal(60, cache.ClearPeriod);
            Assert.Equal(10000, cache.MaxEntity);
            Assert.False(cache.Using);
            Assert.NotNull(cache.GetKeyMethod);
            Assert.NotNull(cache.FindKeyMethod);
            Assert.Equal(0, cache.Total);
            Assert.Equal(0, cache.Success);
        }
Beispiel #5
0
        static Content()
        {
            // 用于引发基类的静态构造函数,所有层次的泛型实体类都应该有一个
            var entity = new Content();

            _cache = new SingleEntityCache <Int32, Content>()
            {
                FindKeyMethod = id => FindAll(_.InfoID == id, _.Version.Desc(), null, 0, 1).FirstOrDefault(),
            };

            Meta.Modules.Add <UserModule>();
            Meta.Modules.Add <TimeModule>();
            Meta.Modules.Add <IPModule>();
        }
Beispiel #6
0
        private static void Test9()
        {
            var cache = new SingleEntityCache <Int32, User> {
                Expire = 1
            };

            // 首次访问
            var user = cache[1];

            XTrace.WriteLine("cache.Success={0}", cache.Success);

            user = cache[1];
            XTrace.WriteLine("cache.Success={0}", cache.Success);

            user = cache[1];
            XTrace.WriteLine("cache.Success={0}", cache.Success);

            EntityFactory.InitAll();

            XTrace.WriteLine("TestRole");
            var r0 = Role.FindByName("Stone");

            r0?.Delete();

            var r = new Role
            {
                Name = "Stone"
            };

            r.Insert();

            var r2 = Role.FindByName("Stone");

            XTrace.WriteLine("FindByName: {0}", r2.ToJson());

            r.Enable = true;
            r.Update();

            var r3 = Role.Find(Role._.Name == "STONE");

            XTrace.WriteLine("Find: {0}", r3.ToJson());

            r.Delete();

            var n = Role.FindCount();

            XTrace.WriteLine("count={0}", n);
        }
        static EntityContent()
        {
            // 用于引发基类的静态构造函数,所有层次的泛型实体类都应该有一个
            TEntity entity = new TEntity();

            EntityFactory.Register(typeof(TEntity), new ContentFactory <TEntity>());

            _cache               = new SingleEntityCache <int, TEntity>();
            _cache.AllowNull     = true;
            _cache.AutoSave      = false;
            _cache.FindKeyMethod = id =>
            {
                var list = FindAllByName(__.ParentID, id, _.Version.Desc(), 0, 1);
                return(list.Count > 0 ? list[0] : null);
            };
        }