NHibernate Envers - используйте Guid как Id вместо Int

Все примеры, которые я видел для NHibernate.Envers используйте целое число в качестве идентификатора объекта. Я хотел бы использовать 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."}

Мой объект данных ревизии имеет идентификатор 0.

1 ответ

Решение

Да, ваши энты могут иметь практически любой тип идентификатора (который поддерживает NHibernate Core). Хотя версия ревизии должна иметь номер.

О вашем исключении... Скорее всего, что-то не так с вашей сущностью ревизии и / или ее отображением. Прочитайте документы здесь, http://envers.bitbucket.org/.

Другие вопросы по тегам