На самом деле вы, вероятно, DO используете транзакции.Потому что по умолчанию NHibernate не будет вставлять при добавлении сущности в другую коллекцию.Я проверил это поведение на своей тестовой модели:
Blog blog = new Blog();
blog.Name = "test";
blog.CreatedAt = DateTime.Now;
session.SaveOrUpdate(blog);
var item = new Post(blog);
blog.Posts.Add(item); // item.Id still 0 here. That mean that no insert was made
Итак, проверьте объем транзакции.И еще одна вещь, которая может повлиять на режим сброса сессии.Но даже с таким кодом
Blog blog = new Blog();
session.FlushMode = FlushMode.Always;
session.SaveOrUpdate(blog);
var item = new Post(blog);
blog.Posts.Add(item);
var blogs = session.QueryOver<Blog>().List();
Id по-прежнему равен 0. Так что ищите транзакции или сессию. Флэш-вызовы