-1

さて、「ビジネス」という名前のオブジェクトがあります (「ビジネス ビジネス オブジェクト」です) 保存すると、その外部キーが何らかの形で失われます。他のすべては節約です。コードをステップ実行し、オブジェクトが

session.SaveOrUpdate(businessObject);

方法。その時点のオブジェクトは無傷であり、外部プロパティがそこにあるようです。ただし、保存すると、外部 ID はビジネス テーブルにありません。これは、正しくマッピングしていないことが原因であると想像できますか?

それらがマッピングされている場所は次のとおりです。

<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);

ご協力ありがとうございました。

4

2 に答える 2

1

挿入更新プロパティを true に設定するか、それらを削除します。

于 2009-01-14T23:12:24.940 に答える
0

ビジネスのことですか._SubCategory.SubCategoryId

GetCurrentUser が何を返すかはわかりませんが、Id も...

business._User.UserId?

于 2009-01-14T23:08:47.160 に答える