我知道对于多部分写入,我应该在nhibernate中使用事务。但是,对于简单的读写操作(第1部分)呢……我读到,始终使用事务是一种好习惯。这是必需的吗?

我应该做以下简单阅读吗?或者我可以完全放弃事务部分吗?

public PrinterJob RetrievePrinterJobById(Guid id)
{
    using (ISession session = sessionFactory.OpenSession())
    {
        using (ITransaction transaction = session.BeginTransaction())
        {
            var printerJob2 = (PrinterJob) session.Get(typeof (PrinterJob), id);
            transaction.Commit();

            return printerJob2;
        }
    }
}

要么
public PrinterJob RetrievePrinterJobById(Guid id)
{
    using (ISession session = sessionFactory.OpenSession())
    {
        return (PrinterJob) session.Get(typeof (PrinterJob), id);
    }
}

简单写呢?
public void AddPrintJob(PrinterJob printerJob)
{
    using (ISession session = sessionFactory.OpenSession())
    {
        using (ITransaction transaction = session.BeginTransaction())
        {
            session.Save(printerJob);
            transaction.Commit();
        }
    }
}

最佳答案

最好的建议是始终使用事务。 This link from the NHProf文档,最好地说明了原因。



(顺便说一句,如果您正在认真进行NHibernate工作,请考虑试用NHProf)。

10-02 18:15