0

我见过的所有示例都NHibernate.Envers使用整数作为对象 ID。我想用Guid's 代替。这可能吗?

[Audited]
public class Person
{
    public virtual Guid Id { get; set; }
    public virtual String FirstName { get; set; }
    public virtual String LastName { get; set; }
    public virtual int Age { get; set; }
    public virtual Address.Address Address { get; set; }
}

我问是因为我在尝试保存REV数据时看到异常:

[Sql String]: INSERT INTO REVINFO (REVTSTMP) VALUES (?); select SCOPE_IDENTITY()

{"Cannot insert the value NULL into column 'REV', table 'Auditing.dbo.REVINFO'; 
  column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."}

我的修订数据对象的 ID 为 0。

4

1 回答 1

1

是的,您的实体几乎可以有任何 id 类型(NHibernate Core 支持)。修订实体必须有一个数字。

关于您的例外...您的修订实体和/或其映射很可能有问题。在此处阅读文档,http ://envers.bitbucket.org/#revisionlog 。

于 2015-01-29T08:31:34.517 回答