C# 找到Nhibernate:整数,应为INT
我得到一个例外:C# 找到Nhibernate:整数,应为INT,c#,nhibernate,orm,mapping,C#,Nhibernate,Orm,Mapping,我得到一个例外: NHibernate.HibernateException: Wrong column type in main_Command for column Id. Found: integer, Expected INT 映射为: <id name="Id" type="int"> <generator class="identity" /> </id> 我认为你们的类型是错误的(但我可能是错的),根据文章是从NHibernate在曼宁出
NHibernate.HibernateException: Wrong column type in main_Command for column Id.
Found: integer, Expected INT
映射为:
<id name="Id" type="int">
<generator class="identity" />
</id>
我认为你们的类型是错误的(但我可能是错的),根据文章是从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'
或完全删除它我认为您的类型是错误的(但我可能是错误的),这篇文章摘自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'
或将其全部删除检查NHibernate源代码中的,并找到问题的答案。似乎所有带符号整数类型都没有映射到列所需的integer
但好消息是,无符号整数确实映射到INTEGER
RegisterColumnType(DbType.UInt16, "INTEGER");
RegisterColumnType(DbType.UInt32, "INTEGER");
RegisterColumnType(DbType.UInt64, "INTEGER");
因此,请尝试以下映射:
<id name="Id" type="UInt32">
<generator class="identity" />
</id>
检查NHibernate源中的,并找到问题的答案。似乎所有带符号整数类型都没有映射到列所需的
integer
但好消息是,无符号整数确实映射到INTEGER
RegisterColumnType(DbType.UInt16, "INTEGER");
RegisterColumnType(DbType.UInt32, "INTEGER");
RegisterColumnType(DbType.UInt64, "INTEGER");
因此,请尝试以下映射:
<id name="Id" type="UInt32">
<generator class="identity" />
</id>
您是否尝试从映射中删除`type=“int”'?还有,您使用的是什么DBMS?我添加了type=“int”试图修复一个程序,但仍然有一个异常。您何时会遇到此异常?是在获取、插入还是在nHibernate编译映射文件时发生的?是在获取时发生的?是否尝试从映射中删除`type=“int”?还有,您使用的是什么DBMS?我添加了type=“int”试图修复一个程序,但仍然有一个异常。您何时会遇到此异常?是在获取、插入还是在nHibernate编译映射文件时发生的?它发生在获取时,实际上不是一个答案,而是本机和标识,最后,我使用了增量,它对我有效。啊,我看到了你对SQLLITE的评论。我不认为自动递增是这样的事情。我百分之百肯定本地人应该工作。看不到实际的答案,但不是本机和标识,最后,我使用了增量,它对我有效。啊,我看到了你对SQLLITE的评论。我不认为自动递增是这样的事情。我百分之百肯定本地人应该工作。看见