"NHibernate.Exceptions.GenericADOException: could not load an entity" 解決方案

来源:http://www.cnblogs.com/VAllen/archive/2017/01/06/could-not-load-an-entity.html
-Advertisement-
Play Games

今天,測試一個項目的時候,拋出了這個莫名其妙的異常,然後就開始了一天的調試之旅... 花了很長時間,沒有從代碼找出任何問題... 那麼到底哪裡出問題呢? 根據下麵那段長長的錯誤日誌: 上百度,上谷歌... 有人說會不會是Lazy載入的問題,說他試過設置Lazy=false就不會出現這個問題了???納 ...


 今天,測試一個項目的時候,拋出了這個莫名其妙的異常,然後就開始了一天的調試之旅... 花了很長時間,沒有從代碼找出任何問題... 那麼到底哪裡出問題呢? 根據下麵那段長長的錯誤日誌:
2017-01-06 17:07:03,680 [19] XxxXxxxx.Web.Mvc.Controllers.WarningController - UnhandleError guest /master/poitem
NHibernate.Exceptions.GenericADOException: could not load an entity: [XxxXxxxx.Model.Format#50][SQL: /* load XxxXxxxx.Model.Format */ SELECT format0_.id as id1_4_0_, format0_.nh_version as nh2_4_0_, format0_.category_id as catego3_4_0_, format0_.name as name4_4_0_, format0_.display_name as displa5_4_0_, format0_.path as path6_4_0_, format0_.preview_image as previe7_4_0_, format0_.code as code8_4_0_, format0_.type as type9_4_0_, format0_.created_id as creat10_4_0_, format0_.created_time as creat11_4_0_, format0_.modified_id as modif12_4_0_, format0_.modified_time as modif13_4_0_ FROM wp_format format0_ WHERE format0_.id=?] ---> System.InvalidCastException: Can't convert infinite timestamp values to DateTime
   在 Npgsql.NpgsqlDataReader.GetValue(Int32 ordinal)
   在 Npgsql.NpgsqlDataReader.get_Item(Int32 ordinal)
   在 NHibernate.Driver.NHybridDataReader.System.Data.IDataRecord.get_Item(Int32 i)
   在 NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String name)
   在 NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String[] names, ISessionImplementor session, Object owner)
   在 NHibernate.Type.AbstractType.Hydrate(IDataReader rs, String[] names, ISessionImplementor session, Object owner)
   在 NHibernate.Persister.Entity.AbstractEntityPersister.Hydrate(IDataReader rs, Object id, Object obj, ILoadable rootLoadable, String[][] suffixedPropertyColumns, Boolean allProperties, ISessionImplementor session)
   在 NHibernate.Loader.Loader.LoadFromResultSet(IDataReader rs, Int32 i, Object obj, String instanceClass, EntityKey key, String rowIdAlias, LockMode lockMode, ILoadable rootPersister, ISessionImplementor session)
   在 NHibernate.Loader.Loader.InstanceNotYetLoaded(IDataReader dr, Int32 i, ILoadable persister, EntityKey key, LockMode lockMode, String rowIdAlias, EntityKey optionalObjectKey, Object optionalObject, IList hydratedObjects, ISessionImplementor session)
   在 NHibernate.Loader.Loader.GetRow(IDataReader rs, ILoadable[] persisters, EntityKey[] keys, Object optionalObject, EntityKey optionalObjectKey, LockMode[] lockModes, IList hydratedObjects, ISessionImplementor session)
   在 NHibernate.Loader.Loader.GetRowFromResultSet(IDataReader resultSet, ISessionImplementor session, QueryParameters queryParameters, LockMode[] lockModeArray, EntityKey optionalObjectKey, IList hydratedObjects, EntityKey[] keys, Boolean returnProxies, IResultTransformer forcedResultTransformer)
   在 NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
   在 NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
   在 NHibernate.Loader.Loader.LoadEntity(ISessionImplementor session, Object id, IType identifierType, Object optionalObject, String optionalEntityName, Object optionalIdentifier, IEntityPersister persister)
   --- 內部異常堆棧跟蹤的結尾 ---
   在 NHibernate.Loader.Loader.LoadEntity(ISessionImplementor session, Object id, IType identifierType, Object optionalObject, String optionalEntityName, Object optionalIdentifier, IEntityPersister persister)
   在 NHibernate.Loader.Entity.AbstractEntityLoader.Load(ISessionImplementor session, Object id, Object optionalObject, Object optionalId)
   在 NHibernate.Loader.Entity.AbstractEntityLoader.Load(Object id, Object optionalObject, ISessionImplementor session)
   在 NHibernate.Persister.Entity.AbstractEntityPersister.Load(Object id, Object optionalObject, LockMode lockMode, ISessionImplementor session)
   在 NHibernate.Event.Default.DefaultLoadEventListener.LoadFromDatasource(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   在 NHibernate.Event.Default.DefaultLoadEventListener.DoLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   在 NHibernate.Event.Default.DefaultLoadEventListener.Load(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   在 NHibernate.Event.Default.DefaultLoadEventListener.ProxyOrLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   在 NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType)
   在 NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType)
   在 NHibernate.Impl.SessionImpl.InternalLoad(String entityName, Object id, Boolean eager, Boolean isNullable)
   在 NHibernate.Type.EntityType.ResolveIdentifier(Object id, ISessionImplementor session)
   在 NHibernate.Type.EntityType.ResolveIdentifier(Object value, ISessionImplementor session, Object owner)
   在 NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object entity, Boolean readOnly, ISessionImplementor session, PreLoadEvent preLoadEvent, PostLoadEvent postLoadEvent)
   在 NHibernate.Loader.Loader.InitializeEntitiesAndCollections(IList hydratedObjects, Object resultSetId, ISessionImplementor session, Boolean readOnly)
   在 NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
   在 NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
   在 NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters, IResultTransformer forcedResultTransformer)
   在 NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
   在 NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
   在 NHibernate.Loader.Hql.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters)
   在 NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters)
   在 NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results)
   在 NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression, QueryParameters queryParameters, IList results)
   在 NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression queryExpression, QueryParameters parameters)
   在 NHibernate.Impl.AbstractQueryImpl2.List()
   在 NHibernate.Linq.DefaultQueryProvider.ExecuteQuery(NhLinqExpression nhLinqExpression, IQuery query, NhLinqExpression nhQuery)
   在 NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)
   在 NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)
   在 Remotion.Linq.QueryableBase`1.GetEnumerator()
   在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   在 XxxXxxxx.Model.Helper.PagedList`1..ctor(IQueryable`1 source, Int32 pageIndex, Int32 pageSize)
   在 XxxXxxxx.Model.Helper.PaginationHepler.ToPagedList[T](IQueryable`1 source, Int32 pageIndex)
   在 XxxXxxxx.Web.Mvc.Areas.Master.Controllers.PoItemSetupController.List(String ticketType, String brand, String productType, String createtimefrom, String createtimeto, String XxxXxxxx, Int32 page)
   在 lambda_method(Closure , ControllerBase , Object[] )
   在 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
   在 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   在 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
   在 System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   在 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
   在 System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   在 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
   在 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)
   在 System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   在 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   在 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)
   在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

 上百度,上谷歌...

有人說會不會是Lazy載入的問題,說他試過設置Lazy=false就不會出現這個問題了???納尼?我來個黑人三問號!這和Lazy載入有什麼八桿子關係?

有人說POJO文件和XML文件以及資料庫表之間的映射出了問題???這...我表示之前沒有做過任何改動,而且之前運行得好好的,不應該有這樣的問題。再說了,泥煤,我這是C#程式,表跟我提POJO好嗎?

也有人說看了下異常信息,是SQL的問題!!辣麽肯定是SQL的問題???好吧,我剛開始也感覺像是SQL的問題,然而我把SQL貼到資料庫SQL執行器里執行,並沒有問題。更何況我這程式上下全是Linq,Linq代碼也會產生這種問題嗎?不至於吧...

 

好吧好吧,後來,我又看了下異常信息,發現有個提示"Can't convert infinite timestamp values to DateTime"...

這是轉換失敗的意思麽?

難道是資料庫出了問題?

沒有人動資料庫呀?

打開對應的wp_format表,看了下時間類型的欄位,傻眼了!!!

為什麼其中一個時間欄位,裡面的值全是-inxxxxxx這樣的東西,之所以寫xxxxx,是因為我改正後忘記單詞了,嘿嘿...

而其它時間欄位都是"yyyy-mm-dd hh:mm:ss"格式的值。

於是我嘗試把錯誤的值,通過update更新為系統當前時間。

再次調試,終於不會出錯了。

但是我不死心,我想要知道為什麼會出現這樣的問題?

要是找不出來的話,這很黑盒。。。

我嘗試手工改動正常的值為非正常的值,比如把"yyyy-mm-dd hh:mm:ss"格式的值,改成-inxxxxxx這樣的東西,但是提示值非法,不允許修改...

這個提示,我想也是對的,畢竟欄位類型是timestamp,當然只能填時間,不能填其它亂七八糟的東西了。。

哪到底是什麼原因出來的呢?

沒搞懂...

放棄之,寫個文章標記一下。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 編譯器直接支持的數據類型稱為基元類型。基元類型直接映射到Framework類庫(FCL)中存在的類型。比如在c#中int直接映射到曹衍濤 System.Int32類型. IL(IL可以指Intermediate Language,同MSIL(Microsoft Intermediate Langua ...
  • 本例是利用C#中的性能計數器(PerformanceCounter)監控網路的狀態。並能夠直觀的展現出來 涉及到的知識點: PerformanceCounter,表示 Windows NT 性能計數器組件。NextValue() 即獲取計數器樣本併為其返回計算所得值。 PerformanceCoun ...
  • C#反序列化XML異常:在 XML文檔(0, 0)中有一個錯誤“缺少根元素” ...
  • 1.加群 群號:104390185,下載這個文件並解壓 用VS2015打開aspnet-zero-1.9.0.1 2.修改Web項目web.config連接字元串 3.還原NuGet包 在解決方案中,右鍵選擇還原NuGet包 4.創建資料庫 打開程式包管理器控制台 然後選擇"EntityFramew ...
  • 站點關係 管理站點間的關係,站點可以有子站點,子站點繼承父站點的部分配置數據,同時子站點還可以根據需要,本地化由父站點繼承而來的數據。通過繼承和本地化,可以讓子站點在用最小的改動代價,來完成一個與父站點功能類似,但有部分不同的網站。 在創建子站點時,可以選擇使用與Kooboo CMS中任何已經存在的 ...
  • 我總結了一下出現證書無法載入的原因有以下三個 1.證書密碼不正確,微信證書密碼就是商戶號 解決辦法:請檢查證書密碼是不是和商戶號一致 2.IIS設置錯誤,未載入用戶配置文件 解決辦法:找到網站使用的應用程式池-->右擊-->高級設置-->打開如下圖-->在載入用戶配置文件選擇true 3.如果以上兩 ...
  • 本文詳細講述了C#中MessageBox.Show用法以及VB.NET中MsgBox用法,有需要的朋友可以參考下,希望能幫到大家。 ...
  • Kooboo CMS本著功能獨立分離的原則,將站點分為三部分組成:用戶管理,站點管理和內容資料庫管理。各個功能之間既可獨立使用,也可以容易組成在一起形成一個完整的系統。 用戶管理 管理整個系統內的用戶和角色許可權定義。管理員在通過用戶管理模塊管理用戶的相關信息,包括:用戶名,密碼,Email,是否為超 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...