У меня есть база данных MySQL, связанная с NHibernate.Я получаю StaleObjectStateException
:
Сообщение: метод теста DALTest.UnitTest1.AddingResultAndGetAll сгенерировал исключение: NHibernate.StaleObjectStateException: строка была обновлена или удалена другой транзакцией (или сопоставление несохраненного значения было неверным): [Domain.Bean.Result # 3]
... здесь при вызове rr.Save:
DateTime date = new DateTime();
rr = new ResultRepository();
FootRace foot = new FootRace(2,"une courseeee", "vraiment une chouette course", date, 5, false);
Participant part = new Participant(2,"Boveeé", "Joseeé", 123, "M", date, 5);
rr.Save(new Result(3,foot,part , new TimeSpan(2500),5));
Где моя реализация интерфейса:
public void Save(Result result) {
var e =Session.GetSessionImplementation().PersistenceContext.EntityEntries;
Session.SaveOrUpdate(result);
Session.Flush();
}
После некоторых исследований похоже, что это проблема с потоками, но я не могу найти решение этой проблемы.Кстати, база данных сбрасывается в тот момент, когда я вызываю этот тест, так что внутри абсолютно ничего нет.
Вот файл сопоставления XML:
<class name="Result" table="result">
<id name="Id" column="idResult" type="int">
<generator class="native"></generator>
</id>
<many-to-one name="FootRace" class="FootRace" column="idFootRace" cascade="save-update"/>
<many-to-one name="Participant" class ="Participant" column ="idParticipant" cascade="save-update"/>
<property name="RaceTime" column="raceTime" not-null="false"/>
<property name="Rank" column="rank"/>
</class>