每次我尝试创建一个特定的实体时都会收到这个消息...我只想知道我该怎么找出原因。
我使用的是Fluent NHibernate自动映射,所以我可能没有适当地设置约定和/或需要覆盖一个或多个映射文件中的某些内容。我在网上浏览了许多关于这个问题的帖子,很难弄清楚为什么它会发生在我的案例中。
我要保存的对象非常简单。它是一个引用"Company“实体的"Person”对象,并且具有一个"Address“实体的集合。更新在数据库中已有的Person对象上运行得很好。
有什么建议吗?
发布于 2010-11-03 15:07:56
该错误表示正在执行SQL INSERT语句,但SQL Server运行后返回的ROWCOUNT为0,而不是预期的1。
有几个原因导致UPDATE/INSERT触发器关闭了行计数,这些原因来自不正确的映射。
最好的方法是分析SQL语句,看看会发生什么。要做到这一点,请打开
nHibernate sql日志记录
,或使用sql profiler。有了SQL之后,您可能就知道原因了,如果没有,请尝试手动运行SQL,看看会发生什么。
此外,我建议您发布您的地图,因为它将帮助人们发现任何问题。
发布于 2014-02-11 23:43:08
当触发器执行影响行计数的附加DML (数据修改)查询时,可能会发生这种情况。我的解决方案是在触发器的顶部添加以下内容:
SET NOCOUNT ON;
发布于 2014-04-30 17:32:36
这可能是由于自动增量主键造成的。要解决此问题,请不要将自动增量值嵌入数据集。插入不带主键的数据。
https://stackoverflow.com/questions/4083368
复制相似问题