Одним из способов повышения масштабируемости серверного приложения является асинхронное выполнение операций с IO-привязкой (чтение файлов, сокетов, веб-запросов, запросов к базе данных и т.д.). Это не значит запускать их в ThreadPool, который будет просто блокировать потоки во время выполнения операции. Правильный способ - использовать асинхронный API (BeginRead, BeginGetResponse, BeginExecuteReader и т.д.). Эта проблема хорошо описана в CLR vi С#.
Вот несколько статей о асинхронных запросах в Linq to SQL.
Являются ли какие-либо способы выполнения запроса Nhibernate асинхронно? Что относительно Linq для NHibernate?
Спасибо, Андрей