Здравствуйте, возникла проблема с удалением данных. Вот код метода удаления:
public virtual void Delete(T item)
{
ISession session = sessionFactory.GetCurrentSession();
ITransaction tr = session.BeginTransaction();
session.Delete(item);
//session.Flush();
tr.Commit();
}
Проблема в следующем: при вызове метода данные не удаляются. При этом не возникает никаких исключений.
Но если раскоментировать строку с
session.Flush(), все работает как надо.
Для добавления данных использую такой метод:
public virtual T Save(T item)
{
ISession session = sessionFactory.GetCurrentSession();
ITransaction tr = session.BeginTransaction();
item = (T)session.SaveOrUpdateCopy(item);
tr.Commit();
return item;
}
После
tr.Commit() данные сохраняются в базу данных. Т.е как должно быть вызывался Session.Flush().
И, собственно, вопрос: почему в одном случае изменения сохраняются, а во втором нет.