Вы могли пользоваться библиотекой как jQuery и $ .post метод .
Редактировать (помещено вверху)
цитата из документации NHibernate:
Из-за присущей ему природы сущности, которые используют этот генератор, не могут быть сохранены с помощью метода ISession SaveOrUpdate (). Вместо этого вы должны явно указать NHibernate, следует ли сохранять или обновлять объект, вызывая метод Save () или Update () ISession.
http://www.nhforge.org/doc/nh/en /index.html#mapping-declaration-id-assigned (5.1.4.7)
Составному идентификатору назначен генератор =.
Это восходит к составному идентификатору = всасывание :)
Вы не выдача флеша или фиксации. Вы, вероятно, привыкли работать с чем-то вроде идентификатора, который выдает INSERT при сохранении, но составные части назначаются вашим кодом, а не базой данных, поэтому вам нужен сброс / фиксация для вставки.
var custHub = new CustomerHub {CustomerId = 293, HubId = 1193};
var y = session.SaveOrUpdate(custHub);
session.Flush();
или
using(var tx = session.BeginTransaction())
{
var custHub = new CustomerHub {CustomerId = 293, HubId = 1193};
var y = session.SaveOrUpdate(custHub);
tx.Commit();
}
Также одно примечание: использование составных ключей заставит вас возненавидеть свою жизнь. Многое не работает с составными ключами, и это не сразу очевидно. По сути, NHibernate может выполнять меньше работы, поэтому вам придется подбирать слабину.