Exemplo n.º 1
0
        public void TestGUID()
        {
            var db = new MSSqlDBContext();
            //var model = new TestID { id = Guid.NewGuid().ToString(), name = "tom" };
            var model = new TestID {
                id = Guid.NewGuid(), name = "tom"
            };

            Assert.True(db.NonQueryUseModel(
                            $"insert into {nameof(TestID)}(id, name) values(@id, @name)", model) > 0);

            var list = db.Query <TestID>($"select * from {nameof(TestID)}");

            Assert.NotEmpty(list.FirstOrDefault().id.ToString());

            var whereModel = new
            {
                id = model.id,
            };

            Assert.NotEmpty(db.QueryUseModel <TestID>($"select * from {nameof(TestID)} where id=@id", whereModel)
                            .FirstOrDefault().id.ToString());

            Assert.True((int)typeof(int).ChangeValueType(
                            db.Scalar($"select count(id) from {nameof(TestID)}")) > 0);
            Assert.True((int)typeof(int).ChangeValueType(
                            db.ScalarUseModel($"select count(id) from {nameof(TestID)}", whereModel)) > 0);

            Assert.True(db.NonQueryUseModel(
                            $"update {nameof(TestID)} set name=@name where id=@id", new { id = model.id, name = "tom123" }) > 0);

            Assert.True(db.NonQueryUseModel(
                            $"delete from {nameof(TestID)} where id=@id", new { id = model.id }) > 0);
        }
Exemplo n.º 2
0
        public void TestThread()
        {
            DbContext db = new MSSqlDBContext();
            var       p  = new LuaPersonCacheBLL(db);
            var       a  = new LuaAddressCacheBLL(db);

            TestInit(p, a);

            List <Task> ts       = new List <Task>();
            int         forcount = 100;

            for (int i = 0; i < forcount; i++)
            {
                ts.Add(Task.Run(() =>
                {
                    DbContext db1 = new MSSqlDBContext();
                    var pt        = new LuaPersonCacheBLL(db1);
                    var at        = new LuaAddressCacheBLL(db1);
                    pt.Add();
                    pt.Count();
                    pt.Update();
                    pt.Delete();

                    at.Add();
                    at.Count();
                    at.Update();
                    at.Delete();
                }));
            }
            Task.WaitAll(ts.ToArray());

            TestDelete(p, a);
        }
Exemplo n.º 3
0
        public void Test21()
        {
            DbContext db = new MSSqlDBContext();
            var       p  = new LuaPersonCacheBLL(db);
            var       a  = new LuaAddressCacheBLL(db);

            TestInit(p, a);

            //查询缓存测试
            var p1    = p.Get();
            var count = p.Count();

            Assert.True(p1?.Count > 0);
            Assert.True(count > 0);
            //再添加
            Assert.True(p.Add() > 0);
            //因为配置了查询缓存,而且Add并没有进行清理缓存
            Assert.True(p1?.Count == p.Get()?.Count);
            Assert.True(count == p.Count());

            //AddEx 会进行缓存清理(AddEx是使用Scalar进行新增操作的,用于获取自增id)
            Assert.True(p.AddEx() > 0);
            Assert.True(p1?.Count != p.Get()?.Count);
            Assert.True(count != p.Count());

            TestDelete();
        }
Exemplo n.º 4
0
        public void L2Cache0()
        {
            var db = new MSSqlDBContext();
            var p2 = new PersonL2CacheBLL(db);

            //使用了 output inserted.id 的,因此测试时选择支持的数据库(MSSqlServer)
            Assert.True(p2.AddPersonL2Cache1() > 0);

            var list = p2.GetListL2Cache();  //二级查询缓存,不设置过期时间的

            Assert.True(p2.AddPersonL2NotClearCache() > 0);
            var list1 = p2.GetListL2Cache();

            Assert.True(list?.Count > 0);
            Assert.True(list?.Count == list1?.Count);

            Assert.True(p2.AddPersonL2Cache1() > 0);   //清理缓存
            var list2 = p2.GetListL2Cache();

            Assert.True(list?.Count != list2?.Count);

            p2.DeletePersonL2Cache();
        }