How to solve "Batch update returned unexpected row count from update; actual row count: 0; expected: 1" problem?

wgpubs picture wgpubs · Nov 3, 2010 · Viewed 67.9k times · Source

Getting this everytime I attempt to CREATE a particular entity ... just want to know how I should go about figuring out the cause.

I'm using Fluent NHibernate automapping so perhaps I haven't set a convention appropriately and/or need to override somethings in one or more mapping files. I've gone thru a number of posts on the web regarding this problem and having a hard time figuring out exactly why it is happening in my case.

The object I'm saving is pretty simple. It is a "Person" object that references a "Company" entity and has a collection of "Address" entities. UPDATES work fine on existing Person objects that are already in the database.

Suggestions?

Thanks -wg

Answer

Iain picture Iain · Nov 3, 2010

The error means that the SQL INSERT statement is being executed, but the ROWCOUNT being returned by SQL Server after it runs is 0, not 1 as expected.

There are several causes, from incorrect mappings, to UPDATE/INSERT triggers that have rowcount turned off.

Your best beat is to profile the SQL statements and see what happens. To do that either turn on nHibernate sql logging, or use the sql profiler. Once you have the SQL you may know the cause, if not try running the SQL manually and see what happens.

Also I suggest you to post your mapping, as it will help people spot any issues.