Пример #1
0
        public void LazyLoad_Initialize_AndEvict()
        {
            Category category = new Category("parent");

            category.AddSubcategory(new Category("child"));
            SaveCategory(category);

            using (ISession session = OpenSession())
                using (ITransaction transaction = session.BeginTransaction())
                {
                    Category loaded = session.Load <Category>(category.Id);
                    NHibernateUtil.Initialize(loaded.Subcategories[0]);
                    session.Evict(loaded);
                    transaction.Commit();
                    Assert.AreEqual("child", loaded.Subcategories[0].Name, "cannot access child");
                }
            using (ISession session = OpenSession())
                using (ITransaction transaction = session.BeginTransaction())
                {
                    // first delete children
                    session.CreateQuery("delete from Category where Parent != null").ExecuteUpdate();
                    // then the rest
                    session.CreateQuery("delete from Category").ExecuteUpdate();
                    transaction.Commit();
                }
        }
Пример #2
0
        public async Task LazyLoad_Initialize_AndEvictAsync()
        {
            Category category = new Category("parent");

            category.AddSubcategory(new Category("child"));
            await(SaveCategoryAsync(category));

            using (ISession session = OpenSession())
                using (ITransaction transaction = session.BeginTransaction())
                {
                    Category loaded = await(session.LoadAsync <Category>(category.Id));
                    await(NHibernateUtil.InitializeAsync(loaded.Subcategories[0]));
                    await(session.EvictAsync(loaded));
                    await(transaction.CommitAsync());
                    Assert.AreEqual("child", loaded.Subcategories[0].Name, "cannot access child");
                }
            using (ISession session = OpenSession())
                using (ITransaction transaction = session.BeginTransaction())
                {
                    // first delete children
                    await(session.CreateQuery("delete from Category where Parent != null").ExecuteUpdateAsync());
                    // then the rest
                    await(session.CreateQuery("delete from Category").ExecuteUpdateAsync());
                    await(transaction.CommitAsync());
                }
        }
Пример #3
0
		public void LazyLoad_Initialize_AndEvict()
		{
			Category category = new Category("parent");
			category.AddSubcategory(new Category("child"));
			SaveCategory(category);

			using (ISession session = OpenSession())
			using (ITransaction transaction = session.BeginTransaction())
			{
				Category loaded = session.Load<Category>(category.Id);
				NHibernateUtil.Initialize(loaded.Subcategories[0]);
				session.Evict(loaded);
				transaction.Commit();
				Assert.AreEqual("child", loaded.Subcategories[0].Name, "cannot access child");
			}
			using (ISession session = OpenSession())
			using (ITransaction transaction = session.BeginTransaction())
			{
				// first delete children
				session.CreateQuery("delete from Category where Parent != null").ExecuteUpdate();
				// then the rest
				session.CreateQuery("delete from Category").ExecuteUpdate();
				transaction.Commit();
			}
		}