2009-01-14 95 views
0

好的,所以我有一个名为“业务”(我知道,我知道,“业务业务对象”)的对象 当它保存它的外键失去了某种方式。其他一切都在节省。我已经遍历代码并跟随了对象,直到NHibernate映射问题(我认为)

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

谢谢您的帮助。

回答

1

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

0

您是不是要找business._SubCategory.SubCategoryId

,不知道什么GetCurrentUser回报,但如果标识,以及...

business._User.UserId?

+0

该对象在Business.cs文件中被映射为: public virtual User _User {get;组; } 所以,我不认为我可以设置ID值,我设置了整个对象,不是? – 2009-01-14 23:12:47