Sé que para escrituras multiparte, debería estar usando transacciones en nhibernate. Sin embargo, para lecturas y escrituras simples (1 parte) ... He leído que es una buena práctica usar siempre las transacciones. Es esto requerido?¿Debo usar siempre transacciones en nhibernate (incluso para lecturas y escrituras simples)?
¿Debo hacer lo siguiente para una lectura simple? ¿o puedo simplemente dejar caer la parte de transcacción a togather?
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;
}
}
}
o
public PrinterJob RetrievePrinterJobById(Guid id)
{
using (ISession session = sessionFactory.OpenSession())
{
return (PrinterJob) session.Get(typeof (PrinterJob), id);
}
}
¿Y para las escrituras simples?
public void AddPrintJob(PrinterJob printerJob)
{
using (ISession session = sessionFactory.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(printerJob);
transaction.Commit();
}
}
}
Excelente respuesta en SO: http://stackoverflow.com/questions/1657465/nhibernate-transactions-on-reads –