хорошо, поэтому Айенде рекомендует всегда использовать транзакцию , даже для операций чтения.
но предположим, что у меня есть следующий сценарий:
public Employee GetEmployeeByName(string name)
{
using (ITransaction tx = CurrentSession.BeginTransaction())
{
return dao.GetEmployeeByName(name);
}
}
public void SaveNewEmployee(Employee employee)
{
using (ITransaction tx = CurrentSession.BeginTransaction())
{
if (GetEmployeeByName(employee.Name) != null)
{
throw new ArgumentException("employee with same name found");
}
CurrentSession.Save(employee);
}
}
это на самом деле вызовет исключение, поскольку nhibernate не поддерживает вложенные транзакции .
как я могу обойти это?
EDIT
это даже лучшее решение, чем то, которое я принял ...