Let me start by saying that I know that NH doesn't recommend using bulk operations. But as a bit of interest, I was wondering why this is so expensive. For 200 objects in my system, it takes 4 minutes, for which 90+% of the time is spent in DefaultAutoFlushEventListener.OnAutoFlush (Thanks to RedGate Profiler). That's insane. I wonder if anyone has written a custom DefaultAutoFlushEventListener that temporarily works around this hinderence for large repetitive updates.
Update: Actually not an issue with bulk update so much as it is with transactions and FlushMode for queries. But still, what the hell is NH doing when it flushes?