我很难弄清楚NH例外:批更新从更新中返回了意外的行计数;实际行数:0;预计:1
批更新从更新返回意外的行数;实际行 count:0;预计:1
我的达尔代码:
public T Save(T item)
{
using (ISession session = NHibernateHelper.GetSession())
{
using (var transaction = session.BeginTransaction())
{
session.SaveOrUpdate(item);
transaction.Commit();
return item;
}
}
}
我log4net的文件:
命令0:UPDATE Metadata_FriendDetails SET用户ID = @ P0,电子邮件= @ P1, 名称= @ p2 WHERE FriendId = @ p3; @ p0 = a358ab9d-d481-4bdd-8cb2-18ddc8898c70 [类型:Guid(0)],@ p1 = '[email protected]'[类型:字符串(4000)],@ @ p2 ='myFriend'[类型:字符串 (4000)],@ p3 = 2ea35658-edb1-43e3-b848-e1915d1042df [类型:GUID(0)]
2011-12-02 13:06:49750 [代理人:适配器运行线程测试 'SaveFriendDetails_Test' id为 “17016e48- 1ff4-4dea-8536-6aa3b24e5fb7' ] DEBUG NHibernate.AdoNet.AbstractBatcher - 闭IDbCommand的,开放的 IDbCommands:0 2011-12-02 13:06:49751 [代理:适配器运行线程 测试 'SaveFriendDetails_Test',且id '17016e48-1ff4-4dea-8536-6aa3b24e5fb7']错误 NHibernate.Event.Default.AbstractFlushingEventListener - 不能 同步数据库状态与会话 NHibernate.StaleStateException:批量更新返回意外的行 从更新计数;实际行数:0;预计:1
有没有人看到这个问题?
TIA
一对夫妇possiblites的,你的对象被分离,并从未在DATABSE actaully创建的,所以没有原单对象行更新。或者更新之前,表中的某个值已更改。我认为这是一个可重复的怀疑?在创建,更新和保存对象的过程中发布一些代码段会很有帮助。 – user957902
我认为你应该写异常的来源,例外。它会更有帮助。 – Joshi
added.i can not see why:NHibernate.Event.Default.AbstractFlushingEventListener - 无法使数据库状态与会话NHibernate同步 –