public void MyTestInitialize()
        {
            TransInvoke.InvokTransFunction(() =>
            {
                using (var session = NHibernateHelper.GetCurrentSession())
                {
                    var query = session.QueryOver <Question>();
                    var qs    = query.List();
                    foreach (var question in qs)
                    {
                        if (question.Answers.Count > 0)
                        {
                            foreach (var answer in question.Answers)
                            {
                                session.Delete(answer);
                            }
                        }
                        session.Delete(question);
                    }

                    var aQuery = session.QueryOver <Answer>().List();
                    if (aQuery != null)
                    {
                        foreach (var answer in aQuery)
                        {
                            session.Delete(answer);
                        }
                    }
                    session.Flush();
                }
                return(0);
            });
            _logger.Debug("数据清理完成");
        }
示例#2
0
        public void InnerTransTest()
        {
            TransInvoke.InvokTransFunction(() =>
            {
                ISession session = NHibernateHelper.GetCurrentSession();
                //Transaction.Current.TransactionCompleted +=
                //    (object sender, TransactionEventArgs e) => NHibernateHelper.CloseSession();
                using (ITransaction tx = session.BeginTransaction())
                {
                    //Do sth...
                    var entity = new Cat
                    {
                        Name      = "Princess",
                        Sex       = 'F',
                        Weight    = 7.4f,
                        BirthDate = DateTime.Now,
                        Color     = "Black"
                    };
                    session.Save(entity);
                    session.Delete(entity);
                    //session.Evict();
                    tx.Commit();

                    //throw new Exception("");
                }
                NHibernateHelper.CloseSession();
                return(0);
            });
        }
示例#3
0
        public void SessionDisposeTransactionsTest()
        {
            ISession session = NHibernateHelper.GetCurrentSession();
            var      cats    = new List <Cat>();

            TransInvoke.InvokTransFunction(() =>
            {
                TransInvoke.InvokTransFunction(() =>
                {
                    var entity = new Cat
                    {
                        Name =
                            "Princess1",
                        Sex    = 'F',
                        Weight =
                            7.4f,
                        BirthDate
                            =
                                DateTime
                                .Now,
                        Color =
                            "Black"
                    };
                    session.Save(entity);
                    session.Dispose();
                    //cats.Add(entity);
                    return(0);
                });
                TransInvoke.InvokTransFunction(() =>
                {
                    var entity = new Cat
                    {
                        Name =
                            "Princess2",
                        Sex    = 'F',
                        Weight =
                            7.4f,
                        BirthDate
                            =
                                DateTime
                                .Now,
                        Color =
                            "Black"
                    };
                    //cats.Add(entity);
                    session.Save(entity);
                    session.Dispose();
                    return(0);
                });
                //foreach (var cat in cats)
                //{
                //    session.Save(cat);
                //}
                //session.Flush();
                return(0);
            }, true, true, null, TransactionScopeOption.Required);
            session.Dispose();
        }
        public void CreateMainEntityTest()
        {
            var session  = NHibernateHelper.GetCurrentSession();
            var expected = TransInvoke.InvokTransFunction(() =>
            {
                var q  = new Question();
                q.Name = "Q1";
                session.Save(q);
                session.Flush();
                return(q);
            });
            var session2 = NHibernateHelper.GetCurrentSession();
            var result   = session2.Get <Question>(expected.QuestionID);

            Assert.AreEqual(result, expected);
            NHibernateHelper.CloseSession();
        }
示例#5
0
 public void SessionOverTransTest()
 {
     TransInvoke.InvokTransFunction(() =>
     {
         TransInvoke.InvokTransFunction(() =>
         {
             NHCreateEntity();
             return(0);
         });
         TransInvoke.InvokTransFunction(() =>
         {
             NHCreateEntity();
             return(0);
         });
         return(0);
     }, false);
 }
示例#6
0
        public void CreateSessionBeforeTransTest()
        {
            ISession session = NHibernateHelper.GetCurrentSession();

            TransInvoke.InvokTransFunction(() =>
            {
                var princess = new Cat
                {
                    Name      = "Princess",
                    Sex       = 'F',
                    Weight    = 7.4f,
                    BirthDate = DateTime.Now,
                    Color     = "Black"
                };
                session.Save(princess);
                return(0);
            }, false);
            session.Flush();
        }
        public void CreateMainEntityWithChildrenTest()
        {
            var session  = NHibernateHelper.GetCurrentSession();
            var expected = TransInvoke.InvokTransFunction(() =>
            {
                var q = CreateQAndA(session);

                session.Flush();
                return(q);
            });
            var session2 = NHibernateHelper.GetCurrentSession();
            var result   = session2.Get <Question>(expected.QuestionID);

            var query = (from item in session2.Query <Answer>()
                         where item.Question.QuestionID == expected.QuestionID
                         select item);

            Assert.AreEqual(query.Count(), 2, "子实体提交失败");
            Assert.AreEqual(result, expected, "主实体提交失败");
            Assert.AreEqual(result.Answers.Count, 2, "子实体提交失败");
            NHibernateHelper.CloseSession();
        }