Хорошо, независимо от того, как я определяю эти сопоставления, мое сопоставление многие-ко-многим не хочет работать с каскадной вставкой. Я пробовал различные комбинации Cascade ()
с Reverse ()
и удалял все ненужные свойства, чтобы понять, имеют ли они какое-либо отношение к этому, не работает, но не блокируется.
Это действительно просто: у меня есть сообщение
(например, электронное письмо), которое отправляется пользователем (я назвал объект BasicUser
) нескольким пользователям (через свойство К
). Пользователь
и Сообщение
с точки зрения получателей имеют отношение «многие ко многим», но FromUser
имеет отношение «один ко многим». FromUser отлично работает и обновляется, но моя проблема связана с "многие ко многим". Я даже удалил FromUser
и отношения, чтобы проверить, была ли это проблема, но не помогло.
(Примечание. Пользователи с идентификаторами 1, 2 и 3 действительно существуют - я также пробовал получить их из базы данных, а затем добавить их в список, все равно не сработало)
ISessionFactory factory = GetSessionFactory();
ISession session = factory.OpenSession();
Message m = new Message()
{
Body = "Please note 2",
Subject = "Secret 2",
From = new BasicUser(){Id = 2},
SentAt = DateTime.Now,
};
m.To.Add(new BasicUser(){Id = 1});
m.To.Add(new BasicUser(){Id=3});
session.SaveOrUpdate(m);
session.Close();