protected override void OnSetUp()
        {
            // Clear cache at each test.
            RebuildSessionFactory();
            using (ISession session = OpenSession())
                using (ITransaction tx = session.BeginTransaction())
                {
                    Item item = new Item();
                    item.Id = 1;
                    session.Save(item);
                    for (int i = 0; i < 4; i++)
                    {
                        Item child = new Item();
                        child.Id     = i + 2;
                        child.Parent = item;
                        session.Save(child);
                        item.Children.Add(child);
                    }

                    for (int i = 0; i < 5; i++)
                    {
                        AnotherItem obj = new AnotherItem("Item #" + i);
                        obj.Id = i + 1;
                        session.Save(obj);
                    }

                    tx.Commit();
                }

            Sfi.Evict(typeof(Item));
            Sfi.EvictCollection(typeof(Item).FullName + ".Children");
        }
Exemple #2
0
        protected void ClearCollectionCache <T>(Expression <Func <T, IEnumerable> > pathToCollection)
        {
            var rootEntityTypeFullPath = typeof(T).FullName;
            var memberExpression       = pathToCollection.Body as MemberExpression;

            if (memberExpression == null)
            {
                throw new ArgumentException("pathToCollection should be member expression");
            }

            var role = $"{rootEntityTypeFullPath}.{memberExpression.Member.Name}";

            Sfi.EvictCollection(role);
        }
Exemple #3
0
        public void QueuedBagAdds()
        {
            ISession   s = OpenSession();
            Assignable a = new Assignable();

            a.Id         = "foo";
            a.Categories = new List <Category>();
            Category c = new Category();

            c.Assignable = a;
            a.Categories.Add(c);
            s.Save(a);
            s.Flush();
            s.Close();

            Sfi.EvictCollection("NHibernate.DomainModel.Assignable.Categories");

            s            = OpenSession();
            a            = (Assignable)s.Get(typeof(Assignable), "foo");
            c            = new Category();
            c.Assignable = a;
            a.Categories.Add(c);
            Assert.IsFalse(NHibernateUtil.IsInitialized(a.Categories));
            Assert.AreEqual(2, a.Categories.Count);
            s.Flush();
            s.Close();

            Sfi.EvictCollection("NHibernate.DomainModel.Assignable.Categories");

            s            = OpenSession();
            a            = (Assignable)s.Get(typeof(Assignable), "foo");
            c            = new Category();
            c.Assignable = a;
            a.Categories.Add(c);
            Assert.IsFalse(NHibernateUtil.IsInitialized(a.Categories));
            s.Flush();
            Assert.IsFalse(NHibernateUtil.IsInitialized(a.Categories));
            Assert.AreEqual(3, a.Categories.Count);
            s.Close();

            Sfi.EvictCollection("NHibernate.DomainModel.Assignable.Categories");

            s = OpenSession();
            a = (Assignable)s.Get(typeof(Assignable), "foo");
            Assert.AreEqual(3, a.Categories.Count);
            s.Delete(a);
            s.Flush();
            s.Close();
        }