[英]Nhibernate Found: integer, Expected INT
我有一個例外:
NHibernate.HibernateException: Wrong column type in main_Command for column Id.
Found: integer, Expected INT
映射為:
<id name="Id" type="int">
<generator class="identity" />
</id>
並且class屬性是:
public virtual int Id { get; set; }
檢查用於SQLite方言的NHibernate源,並找到類似問題的答案。 看起來所有帶符號的整數類型都不像SQLite自動增量列所要求的那樣映射到INTEGER
。
RegisterColumnType(DbType.Int16, "SMALLINT");
RegisterColumnType(DbType.Int32, "INT");
RegisterColumnType(DbType.Int64, "BIGINT");
但是好消息是,未簽名的int確實映射到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; }
我覺得你的類型是錯誤的(但我可能是錯的),根據該文章是從NHibernate的采取行動從曼寧出版物。
.NET基本映射類型
Mapping Type .NET Type System.Data.DbType
Int16 System.Int16 DbType.Int16
Int32 System.Int32 DbType.Int32
Int64 System.Int64 DbType.Int64
嘗試使用type='Int32'
或將其完全刪除
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.