NH ManyToOne "объект является несохраненным временным экземпляром" - PullRequest
1 голос
/ 29 ноября 2011

EntityA имеет отношение ManyToOne с EntityB с использованием атрибута property-ref и cascade="none".

В NH 2.1 я смог использовать следующий код:

EnttiyA a = new EntityA();
a.EntityB = new EntityB();
a.EntityB.PropertyRef = 13;
session.Save(a);

И это сработало как шарм.
Теперь, после того, как я обновил до NH 3.2, тот же код дает мне слишком знакомое:

object is an unsaved transient instance - 
save the transient instance before merging: 

Что я делаю не так? Есть ли какие-либо критические изменения в отношениях ManyToOne между 2.1 и 3.2?

[ОБНОВЛЕНИЕ]:

Просто чтобы прояснить проблему - я не хочу создать новый EntityB, я хочу, чтобы у моего нового EntityA была ссылка на существующий EntityB со значением PropertyRef 13.

Спасибо!

1 Ответ

2 голосов
/ 29 ноября 2011

Ну, это не должно работать в 2.1.Вы явно отключили каскадирование, поэтому сохранение a не вызывает сохранение a.EntityB и a невозможно сохранить.Либо позвоните session.Save(a.EntityB) перед сохранением a, либо измените значение каскада как минимум на save.

...