当谈到流利的nhibernate时,我相当n00bish,但我的一个库中有一个意外的错误。流利的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“
现在我认为它的方式,我设置映射,并可能如何我的存储库处理更新/添加。
我有一个控制公司id的下拉列表,当我添加/更新时,我将属性公司设置为数据库中的任何数据库,以便更新为id。
var companyRepository= new CompanyRepository(_session);
temp.Company = companyRepository.GetCompanyById(temp.Company.Id);
_session.Update(c);
任何人都可以给我一个提示/解决方案来帮助我的方式吗?在这里查看相关问题,问题可能是任何事情。
你在这里有一些缺乏和令人困惑的信息。在最后的代码部分,你不想做_session.Update(temp); ?如果不是,什么是c?您是否从同一会话中获得了temp/c,然后传递给公司回购?另外,当您调用回购行时,您看到基本上已将其设置回自己了? – CrazyDart 2010-10-21 18:17:22