Ok, donc j'ai un objet nommé "Business" (je sais, je sais, "Business Business Object") Quand il a enregistré ses clés étrangères sont en quelque sorte perdues. Tout le reste est en train d'économiser. J'ai parcouru le code et suivi l'objet jusqu'à laNHibernate Mapping problème (je pense)
session.SaveOrUpdate (businessObject);
méthode. L'objet à ce moment est intact et les propriétés étrangères semblent être là. Cependant, quand il est enregistré, les ID étrangers ne sont pas dans la table de gestion. Je peux seulement imaginer que cela puisse être dû au fait que je ne les ai pas cartographiés correctement?
Voici où ils sont mis en correspondance:
<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"/>
Voici où l'objet est en cours de chargement et enregistré:
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);
Merci pour votre aide.
l'objet est mappé dans le fichier Business.cs en tant que: public virtual User _User {get; ensemble; } donc, je ne pense pas que je peux définir la valeur de l'ID, je définis l'objet entier, non? –
Oui, il semble que vous définissez un int à la sous-catégorie au lieu d'un objet sous-catégorie. Ne définissez pas la valeur Id, définissez plutôt la sous-catégorie sur l'objet. – rball
Crap nevermind, juste vu le CategoryManager.GetCategory autour de la substance int. Oops. – rball