I am getting difficulty to determine NH exception:

Batch update came back unpredicted row count from update actual row count: expected: 1

My Dal code:

 public T Save(T item)
        {
            using (ISession session = NHibernateHelper.GetSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    session.SaveOrUpdate(item);

                    transaction.Commit();

                    return item;
                }
            }
        }

My log4net file:

command :UPDATE Metadata_FriendDetails SET UserId = @p0, Email = @p1, Title = @p2 WHERE FriendId = @p3@p0 = a358ab9d-d481-4bdd-8cb2-18ddc8898c70 [Type: Guid ()], @p1 = '1@hotmail.com' [Type: String (4000)], @p2 = 'myFriend' [Type: String (4000)], @p3 = 2ea35658-edb1-43e3-b848-e1915d1042df [Type: Guid ()]

2011-12-02 13:06:49,750 [Agent: adapter run thread for test 'SaveFriendDetails_Test' with id '17016e48-1ff4-4dea-8536-6aa3b24e5fb7'] DEBUG NHibernate.AdoNet.AbstractBatcher - Closed IDbCommand, open IDbCommands: 2011-12-02 13:06:49,751 [Agent: adapter run thread for test 'SaveFriendDetails_Test' with id '17016e48-1ff4-4dea-8536-6aa3b24e5fb7'] ERROR NHibernate.Event.Default.AbstractFlushingEventListener - Couldn't synchronize database condition with session NHibernate.StaleStateException: Batch update came back unpredicted row count from update actual row count: expected: 1

Does anybody begin to see the problem?

TIA

the issue was that on Save I should not give you the id value as well as on update I have to supply it.