0

我有一个包含以下字段的表

  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 bt 中的 Session.SaveorUpdate 它给了我错误

    Unexpected row count: 0; expected: 1.

谁能帮我这个?

4

1 回答 1

1

nhibernate.info

5.1.5.7。分配的标识符

如果您希望应用程序分配标识符(而不是让 NHibernate 生成它们),您可以使用assigned生成器。这个特殊的生成器将使用已经分配给对象的标识符属性的标识符值。使用此功能分配具有业务意义的键时要非常小心(几乎总是一个糟糕的设计决定)。

由于其固有的性质,使用此生成器的实体无法通过 ISession 的 SaveOrUpdate() 方法保存。相反,您必须通过调用ISession的Save()or方法来显式地指定 NHibernate 是否应该保存或更新对象。Update()

于 2012-05-10T11:40:22.810 回答