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(); } }
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()); } }
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(); } }