簡體   English   中英

NHibernate Session.Evict()

[英]NHibernate Session.Evict()

我無法訪問我面前的代碼,所以我只是想知道是否有人可以幫助我解決 Session.Evict()。

假設我有一個人 object 有一個子地址集合。 我從 session 填充 Person object 並延遲加載 Addresses 集合。 然后我調用 Session.Evict(personObject) 將 Person object 從 session 中分離出來。 我的問題是,如果我嘗試訪問 Addresses 集合,它將只返回 null,還是會因為 NHibernate 代理找不到關聯的 Z21D6F40CFB511982E4424E0E250A9557?

如果您在驅逐實體之前導致延遲加載發生,那么即使在驅逐之后也可以訪問該集合。 但是,如果您驅逐實體然后嘗試延遲加載子集合,您將收到異常。

您將收到 NHibernate.LazyInitializationException。

我面前也沒有代碼,但是從 memory 開始,您可能會遇到異常。

如果你有延遲加載和工作,NHibernate 將嘗試加載地址集合。 它永遠不應該返回不正確的值/集合,它只會在無法加載所詢問的內容時抱怨。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM