В одной из транзакций мы получаем empId сотрудника =100
Код: Выделить всё
var employee = session.Get(100);
employee.IsActive = false;
Мы немедленно запускаем запрос, чтобы получить всех активных сотрудников.
Код: Выделить всё
var activeEmployees = session.CreateCriteria()
.Add(Restrictions.Eq("IsActive", true))
.List();
Я не могу понять, почему такое непоследовательное поведение. Если запрос выполняется в БД, он должен возвращать empId-100 со значением IsActive «True». В противном случае, если он выполняется в кеше первого уровня, он не должен включать empId-100 в результат запроса. Здесь он возвращает EmpId-100 с IsActive false.
Почему он так себя ведет? Я просмотрел некоторые статьи и сведения о конфигурациях, но не могу понять, что происходит с этим поведением.
Спасибо,
Нагасри.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ry-results