Utilizing an NHibernate Event Listener, how do you access the prior entity condition when an update happens, in order to place the changed entity into my revisions table?

In SQL Server, I personally use the next trigger:

CREATE TRIGGER Trg_PostChange  
    ON dbo.Posts  
AFTER UPDATE  
AS  
BEGIN  
    SET NOCOUNT ON;  
    INSERT INTO [PostRevisions]  
        (...) -- columns here
    SELECT RevisionId = newid(),  
        ... -- columns here
    FROM DELETED -- contains the previous row column values
END

I've implemented a PostUpdateEventListener, however it seems the Entity property from the PreUpdateEvent and PostUpdateEvent classes make reference to the brand new entity condition only.

Here's what I've to date:

public class PostEventListener : IPostUpdateEventListener
{
    public void OnPostUpdate(PostUpdateEvent eventItem)
    {
        var post = eventItem.Entity as Post;
        if (post != null)
        {
            var revision = new PostRevision((Post)eventItem.Entity);
            eventItem.Session.Save(revision);
        }
    }
}

Clearly OldState should retain the prior values, however it appears just like a pursuit to map to an item. Can there be an simpler way?

You can test to make use of the EntityPersister, like so:

eventItem.Persister.Load(post.Id, null, LockMode.None, eventItem.Session);

In the event that does not work, you could make use of a different session to load the item in the db.