Проверка источника NHibernate для SQLite Dialect и поиска ответа на вопрос similar. Похоже, что все подписанные целочисленные типы не сопоставляются с INTEGER
, как это требуется для столбца SQLite Auto Increment.
RegisterColumnType(DbType.Int16, "SMALLINT");
RegisterColumnType(DbType.Int32, "INT");
RegisterColumnType(DbType.Int64, "BIGINT");
Но хорошая новость заключается в том, что без знака Интс сделать карту для INTEGER
.
RegisterColumnType(DbType.UInt16, "INTEGER");
RegisterColumnType(DbType.UInt32, "INTEGER");
RegisterColumnType(DbType.UInt64, "INTEGER");
Поэтому, пожалуйста, попробуйте следующее отображение:
<id name="Id" type="UInt32">
<generator class="identity" />
</id>
С соответствующим изменением к вам класса:
public virtual UInt32 Id { get; set; }
Вы пытались удалить 'тип = "ИНТ"» из ваше сопоставление? Также, какие СУБД вы используете? – mickfold
Я добавил type = "int", пытающийся исправить программу, но все еще имеет исключение – user1669713
Я использую SQLite – user1669713