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("数据清理完成"); }
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); }); }
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(); }
public void SessionOverTransTest() { TransInvoke.InvokTransFunction(() => { TransInvoke.InvokTransFunction(() => { NHCreateEntity(); return(0); }); TransInvoke.InvokTransFunction(() => { NHCreateEntity(); return(0); }); return(0); }, false); }
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(); }