我有一个包含以下字段的表
public class ActivationCode
{
public virtual int LoginAccountId { get; set; }
public virtual string ActivatedCode { get; set; }
public virtual DateTime ActivationDate { get; set; }
}
其中LoginAccountid是我的主键并映射为
<id name="LoginAccountId">
<generator class="native" />
</id>
保存时我将LoginAccountId指定为我的用户帐户ID bt在保存时会获取自己的id并保存数据 我试图用两者保存数据 Session.Save();和Session.SaveorUpdate 在Session.SaveorUpdate中,它给出了我的错误
Unexpected row count: 0; expected: 1.
任何人都能帮助我吗?
答案 0 :(得分:1)
5.1.5.7。分配的标识符
如果您希望应用程序分配标识符(而不是 让NHibernate生成它们),您可以使用
assigned
生成器。 此特殊生成器将使用已分配的标识符值 到对象的标识符属性。使用时要非常小心 功能分配具有商业意义的键(几乎总是很糟糕 设计决定)。由于其固有的性质,使用此生成器的实体不可能 通过ISession的SaveOrUpdate()方法保存。相反,你必须 如果要保存对象,则明确指定NHibernate 通过调用的
Save()
或Update()
方法进行更新 的ISession。