Все примеры, которые я видел для NHibernate.Envers
, используют целое число как идентификатор объекта. Вместо этого я хотел бы использовать Guid
. Это возможно?NHibernate Envers - используйте Guid как Id вместо Int
[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.
Спасибо, Роджер, я смог заставить его работать вчера. Итак, нет способа сделать 'REV' на' REVINFO' 'Guid'? У меня есть проблемы с использованием 'int' или даже' bigint', потому что в конце концов они переполняются. – gwin003
Envers использует это поле для множества внутренних запросов, таких как «идентификатор ревизии больше ...», «идентификатор ревизии между ...», например, при чтении отношений. – Roger
... так что нет, я не думаю, что можно «решить». Короче говоря, каждая ревизия должна иметь уникальную ценность som, которая «сопоставима». – Roger