批量更新从update返回意外的行数;实际行数:0;预期:1

本文关键字:预期 更新 意外 返回 update | 更新日期: 2023-09-27 18:16:30

我很难弄清楚NH异常:

批量更新从update返回意外的行数实际行数:0;预期: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:

命令0:UPDATE Metadata_FriendDetails SET UserId = @p0, Email = @p1,Name = @p2 WHERE frienddid = @p3a358ab9d-d481-4bdd-8cb2-18ddc8898c70 [Type: Guid (0)], @p1 ='1@hotmail.com'[类型:字符串(4000)],@p2 = 'myFriend'[类型:字符串][4000], @p3 = 2ea35658-edb1-43e3-b848-e1915d1042df [Type: Guid (0)]

2011-12-02 13:06:49,750 [Agent: adapter run thread for test .'SaveFriendDetails_Test'与id"17016 e48 - 1 - ff4 - 4 - dea - 8536 - 6 - aa3b24e5fb7的调试-关闭idb命令,打开IDbCommands: 0 2011-12-02 13:06:49,751 [Agent: adapter run thread for .测试'SaveFriendDetails_Test'与id"17016 e48 - 1 - ff4 - 4 - dea - 8536 - 6 - aa3b24e5fb7")错误不能同步数据库状态与会话NHibernate。批量更新返回意外行从更新计数;实际行数:0;预期:1

有人看到问题了吗?

TIA

批量更新从update返回意外的行数;实际行数:0;预期:1

问题是在保存时我不应该提供id值,而在更新时我必须提供它

保存前必须设置Id对象为null

例子:

obj.setId(null);
objectDao.save(obj);