我在一个有很多孩子的NHibernate对象上调用Save 附在它上面。保存后,有时NHibernate会发生错误 开始插入我的sql数据库(“数据被截断了 从一种数据类型转换为另一种数据类型。“例如”。以下 是示例Exception的顶行。 NHibernate永远不会告诉我更多......它失败了。我的问题是,如何确定哪个表/列是我的保存错误中的罪魁祸首?
at System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr) 在System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr& pCursor,布尔& isBaseTableCursor) 在System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand (CommandBehavior行为,String方法,ResultSetOptions选项) 在System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery() 在NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand CMD) 在NHibernate.Id.Insert.AbstractSelectingDelegate.PerformInsert (SqlCommandInfo insertSQL,ISessionImplementor session,IBinder 粘合剂) 在NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object [] fields,Boolean [] notNull,SqlCommandInfo sql,Object obj, ISessionImplementor会话) 在NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object []字段,Object obj,ISessionImplementor会话) 在NHibernate.Action.EntityIdentityInsertAction.Execute()
答案 0 :(得分:1)
问题是SqlServerCe库中发生了错误。所以NHibernate不能告诉你什么是错的。
很可能您在映射文件中选择的数据类型与数据库中的数据类型不同(例如,模型中有数字,数据库中有varchar)。数据库执行隐式转换,如果失败,则会出现此错误。
您可以通过以下方式找到它: