Пример #1
0
        public async Task Test_属实体CUD_属性赋值风格_Async()
        {
            ShowCurrentThread();

            // 注意:
            // 1、异步调用必须使用 DbContext,不能再使用 ConnectionScope 创建的作用域
            // 2、代码中也不能再使用快捷的静态方法。
            using (DbContext db = DbContext.Create()) {
                // 先删除之前测试可能遗留下来的数据
                await db.Entity.From <ModelX>().Where(m => m.IntField = 1978).DeleteAsync();

                ShowCurrentThread();

                // 插入一条记录,只给2个字段赋值
                ModelX obj = db.Entity.BeginEdit <ModelX>();
                obj.IntField    = 1978;
                obj.StringField = "abc";
                await obj.InsertAsync();

                ShowCurrentThread();

                // 检验刚才插入的数据行
                ModelX m1 = await db.Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingleAsync();

                Assert.IsNotNull(m1);
                Assert.AreEqual("abc", m1.StringField);
                ShowCurrentThread();

                // m1 进入编辑状态
                m1             = db.Entity.BeginEdit(m1);
                m1.StringField = "12345";
                int effect = await m1.UpdateAsync();                        // 提交更新,WHERE过滤条件由主键字段决定

                Assert.AreEqual(1, effect);
                ShowCurrentThread();

                // 检验刚才更新的数据行
                ModelX m2 = await db.Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingleAsync();

                Assert.IsNotNull(m2);
                Assert.AreEqual("12345", m2.StringField);
                ShowCurrentThread();

                // 删除数据行
                ModelX obj2 = db.Entity.BeginEdit <ModelX>();
                obj2.IntField = 1978;
                effect        = await obj2.DeleteAsync();

                Assert.AreEqual(1, effect);
                ShowCurrentThread();

                // 检验删除结果
                ModelX m3 = await db.Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingleAsync();

                Assert.IsNull(m3);
                ShowCurrentThread();
            }
        }