我看到的所有例子NHibernate.Envers
都使用整数作为对象 id。我想改用Guid
的。这可能吗?
[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.rnThe statement has been terminated."}
我的修订数据对象的 Id 为 0。
是的,你的entite几乎可以有任何id类型(NHibernate Core支持)。但是,修订实体必须有一个数字。
关于您的例外...很可能您的修订实体和/或其映射有问题。http://envers.bitbucket.org/#revisionlog,请阅读此处的文档。