Я довольно nbbish, когда дело доходит до беглого nhibernate, но у меня есть неожиданная ошибка в одном из моих репозиториев.
У меня есть тип данных CostCode
public class CostCode
{
public virtual int Id { get; set; }
public virtual String CostCodeCode { get; set; }
public virtual Company Company { get; set; }
public virtual DateTime CreatedDate { get; set; }
public virtual String CreatedBy { get; set; }
public virtual DateTime ModifiedDate { get; set; }
public virtual String ModifiedBy { get; set; }
}
и вот отображение
public sealed class CostCodeMap : ClassMap<CostCode>
{
/**
* @breif Mapping Constructor
*/
public CostCodeMap()
{
Id(Reveal.Member<CostCode>("Id"));
Map(x => x.CostCodeCode).Not.Nullable();
References(x => x.Company, "CompanyId").Cascade.All();
Map(x => x.CreatedDate).Not.Nullable();
Map(x => x.CreatedBy).Not.Nullable();
Map(x => x.ModifiedDate).Not.Nullable();
Map(x => x.ModifiedBy).Not.Nullable();
}
}
Когда я пытаюсь обновить это, я получаю сообщение об ошибке "идентификатор экземпляра Domain.DataTypes.Company был изменен с 1 на 8"
Теперь я думаю, что это способ, которым я настроил отображение, и, возможно, как мой репозиторий обрабатывает обновления / добавления.
У меня есть выпадающий список, который управляет идентификатором компании, и когда я добавляю / обновляю его, я устанавливаю для свойства компании то, что находится в базе данных для идентификатора, до которого она была обновлена.
var companyRepository= new CompanyRepository(_session);
temp.Company = companyRepository.GetCompanyById(temp.Company.Id);
_session.Update(c);
Может кто-нибудь дать мне подсказку / решение, чтобы помочь мне на моем пути? Просматривая здесь связанные проблемы, проблема может быть чем угодно.