It seems that a common problem people have with NHibernate is mapping large BLOBs. Part of that problem can be solved with various lazy loading techniques.
When the data outgrows the size that is useful to keep in memory it gets trickier. We can't map it to byte[], string and XmlDocuments any more. We need to stream it.
I've just started a blog post series about this issue.
http://blog.calyptus.eu/seb/2009/03/lar ... and-xlobs/
People looking for a quick solution might want to read it in a few weeks when the code library starts to stabilize.
My suggestion involves incorporating new Blob and Clob style contracts (similar to the ones in Java) in the .NET framework because as far as I know, there isn't really a comparable base class or interface available. Streams and TextReaders aren't really appropriate.
Since this is such an intrusive suggestion I would like to get a discussion going around these new types. If you find this stuff interesting, please, have a read and let me know what you think.