[英]NHibernate - LAZY LOADING PROBLEM -Initializing[]-Could not initialize proxy - no Session."}
[英]Casting NHibernate Lazy loaded objects (Proxy problem)
我有一個這樣的班級客戶:
public class Client{
public Person Pers { get; set; }
}
我有2個人的兒童班:
public class PersonType1 : Person {...}
public class PersonType2 : Person {...}
現在我加載了一個客戶端...並且我需要獲取PersonType1或PersonType2屬性..
我嘗試過:
var _pj = ((PersonType1 ) _client.Pers);
但這不起作用,因為_client.Pers類型是一個代理(延遲加載為true)...
有沒有辦法做到這一點? 我在每個PersonType中都有幾個屬性,因此為每個屬性(Person-> PersonType1)創建一個虛擬/覆蓋不是一個好主意...
謝謝
您可以嘗試熱切地獲取Pers
屬性:
var client = session
.CreateCriteria<Client>()
.CreateCriteria("Pers", JoinType.LeftOuterJoin)
.Add(Expression.IdEq(1))
.UniqueResult<Client>();
var pj = (PersonType1)client.Pers;
如果在服務器中使用NH並將對象移動到客戶端,則不能使用延遲加載。 NH知道的(在服務器中)對客戶端沒有幫助,客戶端既不具有Session也不知道如何在需要時獲取額外的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.