Проблема картографии NHibernate (я думаю) - PullRequest
0 голосов
/ 15 января 2009

Хорошо, у меня есть объект с именем «Бизнес» (я знаю, я знаю, «Бизнес Бизнес-объект») Когда он сохранен, его внешние ключи как-то теряются. Все остальное экономит. Я прошел через код и следовал за объектом до

Session.saveOrUpdate (BusinessObject);

метод. Объект в этой точке не поврежден, и посторонние свойства, кажется, там. Однако, когда он сохранен, внешние идентификаторы не находятся в бизнес-таблице. Я могу только предположить, что это может быть из-за того, что я не правильно их отображаю?

Вот где они отображаются:

<many-to-one insert="false" update="false" name="_Township" column="TownshipId" class="HQData.Objects.Township, HQData" />

    <many-to-one insert="false" update="false" name="_User" column="UserId" class="HQData.Objects.User, HQData" />

    <many-to-one insert="false" update="false" name ="_SubCategory" column="SubCategoryId" class="HQData.Objects.SubCategory, HQData"/>

Здесь объект загружается и сохраняется:

HQData.Objects.Business business = null;
            if (BusinessId != 0)
                business = BusinessManager.GetBusiness(BusinessId);
            else
                business = new HQData.Objects.Business();
            business._SubCategory = CategoryManager.GetCategory(Convert.ToInt32(ddlCategory.SelectedValue.Trim()));
            business.Name = ControlHelper.Sanitize(txtName.Text.Trim());
            business.Address1 = ControlHelper.Sanitize(txtAddress.Text.Trim());
            business._Township = TownshipManager.GetTownshipByCityorZip(ControlHelper.Sanitize(txtTownship.Text));
            business.PhoneNumber = ControlHelper.Sanitize(txtPhone.Text.Trim());
            business.FaxNumber = ControlHelper.Sanitize(txtFax.Text.Trim());
            business.Email = ControlHelper.Sanitize(txtEmail.Text.Trim());
            business.Website = ControlHelper.Sanitize(txtWebsite.Text.Trim());
            business.AboutUs = ControlHelper.Sanitize(txtAboutUs.Text.Trim());
            business._User = UserManager.GetCurrentUser();


            BusinessManager.SaveBusiness(business);

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 15 января 2009

Установите свойства обновления вставки в true или удалите их.

0 голосов
/ 15 января 2009

Вы имели в виду business._SubCategory.SubCategoryId

и не уверен, что возвращает GetCurrentUser, но если Id также ...

business._User.UserId

...