Кэш 2-го уровня Nhibernate "Кешированный элемент заблокирован" - PullRequest
1 голос
/ 24 января 2012

У меня возникли некоторые странности с кешем второго уровня.

Я удаляю объект следующим универсальным методом:

[Transaction(TransactionMode.Requires)]
public virtual void DeleteObject(object obj)
{
    ISession session = _sessionManager.OpenSession();

    session.Delete(obj);    

}

Я регистрирую действия кеша и вижуобъект признан недействительным и удален:

Недействительно: ncontinuity2.core.domain.AuditEvent.ReviewList # 67d175fe-1220-4dff-9c6b-9fe200a1fc89

Выпуск: ncontinuity2.core.domain.AuditEvent # 67d175fe-1220-4dff-9c6b-9fe200a1fc89

Затем я пытаюсь получить коллекцию типа, содержащего удаленную сущность, используя этот общий код:

public virtual IList<T> GetAllByExpression<T>(Expression<Func<T, bool>> expression) where T : class
{
    var session = _sessionManager.OpenSession();

    var result = session.QueryOver<T>()
        .Where(expression)
        .List();

    return result;            
}

Ранее удаленный объект находится в наборе результатов.Если я проверяю журнал кэша, у меня появляется следующая запись:

Поиск в кэше: ncontinuity2.core.domain.AuditEvent # 67d175fe-1220-4dff-9c6b-9fe200a1fc89

Кэшированный элементбыл заблокирован: ncontinuity2.core.domain.AuditEvent # 67d175fe-1220-4dff-9c6b-9fe200a1fc89

Кто-нибудь знает, почему я могу получить запись "Кэшированный элемент заблокирован"? *

Я использую Nhibernate 3.0.0.3001.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...