Я не знаю об этом последнем ответе. Я использую NH 3.2, и мне удалось заставить это работать
var hql = @"INSERT INTO EventFacility (Facility, Event, Owner, Position)
SELECT f, :evt, :own, :position from Facility f where f.Id IN (105, 109, 110)";
var @event = Session.Get<Event>(351931);
var query = Session.CreateQuery(hql)
.SetInt32("position", 0)
.SetEntity("evt", @event)
.SetEntity("own", @event.Owner);
var x = query.ExecuteUpdate();
Assert.AreEqual(3, x);
В этом примере мне нужно было создать новый объект EventFacility. Почти со всеми полями, которые вы видите здесь. У сущности Event есть другая сущность, с которой зависает Владелец.