Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate映射问题(我认为)_C#_.net_Nhibernate_Nhibernate Mapping - Fatal编程技术网

C# NHibernate映射问题(我认为)

C# NHibernate映射问题(我认为),c#,.net,nhibernate,nhibernate-mapping,C#,.net,Nhibernate,Nhibernate Mapping,好的,我有一个名为“Business”的对象(我知道,我知道,“Business object”) 当它保存它的外键时,不知怎的丢失了。其他一切都在节省。我已经完成了代码并跟踪对象直到 session.SaveOrUpdate(businessObject) 方法。此时的对象是完整的,并且外来属性似乎在那里。但是,保存时,外部ID不在业务表中。我只能想象这可能是因为我没有正确地映射它们 以下是它们的映射位置: <many-to-one insert="false" update="fals

好的,我有一个名为“Business”的对象(我知道,我知道,“Business object”) 当它保存它的外键时,不知怎的丢失了。其他一切都在节省。我已经完成了代码并跟踪对象直到

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"/>

谢谢你的帮助

你是认真的。_SubCategory.SubCategory id

不确定GetCurrentUser返回什么,但如果Id也是


business.\u User.UserId?

将插入更新属性设置为true或删除它们。

对象在business.cs文件中映射为:public virtual User{get;Set;}因此,我认为我无法设置ID值,我设置了整个对象,否?是,看起来您正在为子类别而不是子类别对象设置int。不要设置Id值,而是将子类别设置为object.Crap nevermind,只是看到了CategoryManager.GetCategory中的int内容。哎呀。
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);