9
嘗試更新數據庫中的對象時出現以下錯誤。有誰知道可能會發生什麼?我檢查了我所有的數據類型,它們對應於db中的內容。感謝您的任何想法 -xxx的實例的標識符從y更改爲z
NHibernate.HibernateException was unhandled by user code
Message="identifier of an instance of DataTransfer.status was altered from 3 to 4"
Source="NHibernate"
StackTrace:
at NHibernate.Event.Default.DefaultFlushEntityEventListener.CheckId(Object obj, IEntityPersister persister, Object id, EntityMode entityMode)
at NHibernate.Event.Default.DefaultFlushEntityEventListener.GetValues(Object entity, EntityEntry entry, EntityMode entityMode, Boolean mightBeDirty, ISessionImplementor session)
at NHibernate.Event.Default.DefaultFlushEntityEventListener.OnFlushEntity(FlushEntityEvent event)
at NHibernate.Event.Default.AbstractFlushingEventListener.FlushEntities(FlushEvent event)
at NHibernate.Event.Default.AbstractFlushingEventListener.FlushEverythingToExecutions(FlushEvent event)
at NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event)
at NHibernate.Impl.SessionImpl.Flush()
at NHibernate.Transaction.AdoTransaction.Commit()
at DataAccessLayer.NHibernateDataProvider.UpdateItem_temp(items_temp item_temp) in C:\Documents and Settings\Carl.PAMB\My Documents\Visual Studio 2008\Projects\InventoryDataClean\DataAccessLayer\NHibernateDataProvider.cs:line 226
at InventoryDataClean.Controllers.ImportController.Edit(Int32 id, FormCollection formValues) in C:\Documents and Settings\Carl.PAMB\My Documents\Visual Studio 2008\Projects\InventoryDataClean\InventoryDataClean\Controllers\ImportController.cs:line 101
at lambda_method(ExecutionScope , ControllerBase , Object[])
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<InvokeActionMethodWithFilters>b__7()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
InnerException:
從我的log4net的日誌 -
13:37:17 [9] DEBUG NHibernate.Event.Default.DefaultSaveOrUpdateEventListener - object already associated with session: [DataTransfer.items_temp#56876]
而且,這裏是它被稱爲 -
item.status.id = Int32.Parse(formValues["Status"]);
_provider.UpdateItem_temp(item);
這裏是從我的數據提供程序的代碼。
public void UpdateItem_temp(items_temp item_temp)
{
ITransaction t = _session.BeginTransaction();
try
{
_session.SaveOrUpdate(item_temp);
t.Commit();
}
catch (Exception)
{
t.Rollback();
throw;
}
finally
{
t.Dispose();
}
}
第一部分爲+1。我們並不真正瞭解第二部分,因爲沒有發佈數據對象定義,但這在很大程度上與問題無關。 – 2010-04-12 18:27:14
這是票 - 完美的工作。謝謝 – czuroski 2010-04-12 18:35:23
+1。我希望我早點發現它。 – 2011-09-06 08:00:36