Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Nhibernate-Einstellungszeitüberschreitung für Abfragen für Befehle und pessimistisches Sperren

Um eine pessimistische Sperre zu erreichen, müssen Sie die Details des Objekts mit ICritiera abrufen.
Der geänderte Code ist unten angegeben:

using (var session = sessionFactory.OpenSession()) {
    using (var sqlTrans = session.BeginTransaction()) {
        ICriteria criteria = session.CreateCriteria<Foo>();
        criteria.Add(Restrictions.Eq(fieldOnWhichYouWishToGetTheLock, fieldValue));
        criteria.SetLockMode(LockMode.Upgrade);
        criteria.SetTimeout(5);
        Foo fooObject = (Foo)criteria.List<Foo>();
        //Make the changes to foo object and save as usual.
    }
}