以下两段删除代码中,如果删除失败(例如主外键约束),在当前SESSION中,该实体已经被删除。
但是在数据库中依然存在的,而此时如果使用SESSION.GET方法来获取刚才删除失败的实体,将返回NULL值。
若要查询刚才删除失败的实体,那么需要打开一个新的SESSION。
代码一:
///
//使用查询删除所有数据 session.Delete(”Select From User Where 1=1″);
transaction.Commit();
session.Close();
}
代码二:
///
User aUser;
try { //当userId指定的数据在数据库中不存在时会抛出异常 aUser = session.Load(typeof(User), userId) as User;
if (aUser!=null) { session.Delete(aUser); }
transaction.Commit(); }
catch { transaction.Rollback(); }
finally { session.Close(); }
}