NHibernate Envers - 使用 Guid 作为 Id 而不是 Int
NHibernate Envers - Use Guid as Id instead of Int
我在 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.\r\nThe statement has been terminated."}
我的修订数据对象的 ID 为 0。
是的,您的实体几乎可以有任何 id 类型(NHibernate Core 支持)。不过,修订实体必须有编号。
关于您的异常...您的修订实体 and/or 及其映射很可能有问题。在此处阅读文档,http://envers.bitbucket.org/#revisionlog。
我在 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.\r\nThe statement has been terminated."}
我的修订数据对象的 ID 为 0。
是的,您的实体几乎可以有任何 id 类型(NHibernate Core 支持)。不过,修订实体必须有编号。
关于您的异常...您的修订实体 and/or 及其映射很可能有问题。在此处阅读文档,http://envers.bitbucket.org/#revisionlog。