public void Delete()
        {
            User user = new User
            {
                Id = 10
                     //不能用非主键这样删除
                     //UserAccount = "123",
            };

            _repository.Delete(user);
            _repository.SaveChanges();

            using (var newContext = new TestContext())
            {
                var repository = new EfRepositoryBase <User>(newContext);
                var userInDb   = repository.FirstOrDefault(c => c.UserAccount == "123");
                Assert.True(userInDb == null);
            }
        }
        public void Test_insert_update_attach_success()
        {
            User user = new User
            {
                UserName      = "******",
                UserAccount   = "1233123213123",
                UserPassWord  = "******",
                CertificateNo = "123131",
                Mobile        = 13313331333,
                IsVerify      = IsVerifyEnum.可用
            };

            _repository.Insert(user);
            _repository.SaveChanges();
            var newUserId = user.Id;

            Assert.True(newUserId > 0);

            //update
            using (var newContext = new TestContext())
            {
                var repository = new EfRepositoryBase <User>(newContext);
                var userInDb   = repository.FirstOrDefault(c => c.Id == newUserId);
                userInDb.UserName = "******";
                repository.Update(userInDb);
                repository.SaveChanges();
            }

            //assert
            using (var newContext = new TestContext())
            {
                var repository = new EfRepositoryBase <User>(newContext);
                var userInDb   = repository.FirstOrDefault(c => c.Id == newUserId);
                Assert.True(userInDb.UserName == "lisi");
            }

            _repository.Delete(user);
            _repository.SaveChanges();
        }
        public void Test_insert_getbyid_table_tablenotracking_delete_success()
        {
            User user = new User
            {
                UserName      = "******",
                UserAccount   = "1233123213123",
                UserPassWord  = "******",
                CertificateNo = "123131",
                Mobile        = 13313331333,
                IsVerify      = IsVerifyEnum.可用
            };

            _repository.Insert(user);
            _repository.SaveChanges();
            var newUserId = user.Id;

            Assert.True(newUserId > 0);

            //声明新的Context,不然查询直接由DbContext返回而不经过数据库
            using (var newContext = new TestContext())
            {
                var repository = new EfRepositoryBase <User>(newContext);
                var userInDb   = repository.FirstOrDefault(c => c.Id == newUserId);
                Assert.True(user.UserName == userInDb.UserName);
            }
            Assert.True(_context.Entry(user).State == EntityState.Unchanged);

            _repository.Delete(user);
            _repository.SaveChanges();

            using (var newContext = new TestContext())
            {
                var repository = new EfRepositoryBase <User>(newContext);
                var userInDb   = repository.FirstOrDefault(c => c.Id == newUserId);
                Assert.True(userInDb == null);
            }
        }