Ведущий Диалог
Зарегистрирован: 07 June 2005
Сообщения: 125
Примеры кода: 0
|
Re: nHibernate вопрос |
10 January 2006 15:39 |
|
|
|
|
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Вопрос такой. Есть желание получить объект из таблицы и немедленно его оттуда удалить. Делаю это так
PD>ITransaction transaction = null;
PD>try {
PD> transaction = session.BeginTransaction();
PD> obj = GetObjectByProperties(type, propertyNames, propertyValues); // это моя функция
PD> if( obj == null)
PD> throw new DataAccessException(DataAccessException.ObjectNotFound, "Object Not Found");
PD> session.Delete(obj);
PD> transaction.Commit();
PD> }
PD>catch(...
PD>Все работает нормально, если только между GetObjectByProperties и Delete никто не модифицировал объект в БД. Иначе StaleObjectExeption. Как от этого избавиться , т.е заблокировать объект в этот момент ?
PD>Пробовал
PD>session.Lock(obj,LockMode.Write);
PD>- недопустимый тип лока.
Использовать один из методов
int Delete(string);
int Delete(string,object,IType);
int Delete(string,object[],IType[]);
Данное сообщение получено с сайта RSDN
|
|