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/.