Полагаю, то, что мне нужно, это быстрый пример того, как это сделать.У меня свободно работает nhibernate.Я могу создавать новые записи без проблем, и читать в существующих записях без проблем.У меня проблема с пользовательским сеансом asp.net и с тем, как я справляюсь с тем фактом, что я хочу сохранить это между загрузками страниц, и я тоже хочу время от времени записывать его в базу данных.
поток я пытаюсь заставить работать что-то вроде этого:
- Пользователь входит в систему
- NHibernate выбирает запись пользователя
- запись пользователя заполняется в сеансе asp.net
- Сеанс NHibernate (я думаю) заканчивается
- приложение отображает ссылку на страницу «добавить адрес»
- пользователь переходит на страницу «добавить адрес»
- пользовательвводит адресные данные
- пользователь нажимает кнопку "отправить"
- адрес добавляется к объекту пользователя
- объект пользователя записывается в базу данных
При попыткечтобы записать объект пользователя (с новым адресом) обратно в базу данных, я получаю сообщение об ошибке, сообщающее, что объект пользователя уже связан с существующим сеансом.Ниже приведен код, который я использую, чтобы вывести пользователя из сеанса asp.net, добавить адрес и записать его обратно в базу данных.Только в тот момент, когда он попадает .SaveOrUpdate, что вещи идут не так, адрес добавляется к объекту отлично.
void AddAddress_Click(object sender, EventArgs e)
{
var session = Global.SessionFactory.GetCurrentSession();
User user=(User)HttpContext.Current.Session["User"];
user.AddAddress(txtDescription.Text, txtLine1.Text,
txtLine2.Text, txtTown.Text, txtCounty.Text,
txtPostCode.Text, txtCountry.Text);
session.SaveOrUpdate(user);
session.Flush();
}
Пожалуйста, игнорируйте 101 способ, которым это, вероятно, неправильно сейчас, яхорошо осознавая это.Я просто хочу, чтобы что-то работало, чтобы доказать себе, что NHibernate - путь вперед для этого проекта, поэтому он будет немного быстрым и грязным в данный момент.