我有一個記錄結構,我有一個父記錄與許多子記錄。在同一頁面上,我會有幾個查詢來獲得所有的孩子。失去記錄ID
以後的查詢當我展開它時顯示「代理」,我將獲得一個記錄集。因爲一切都在那裏,所以從記錄中獲取數據是很好的。唯一的問題是當我去抓取記錄「ID」時,它總是「0」,因爲它是代理。當我使用記錄ID作爲「選定值」時,這使得構建下拉列表非常困難。更糟糕的是它是隨機的。因此,從5個項目列表中,其中2個將具有「0」的ID,因爲它們是代理。
我可以使用evict強制它有時加載。然而,當我需要延遲加載時(對於網格),evict是不好的,因爲它殺死了懶惰的負載,我無法實時顯示網格內容。
我使用下面開始我的會議:
ISession session = FluentSessionManager.SessionFactory.OpenSession();
session.BeginTransaction();
CurrentSessionContext.Bind(session);
我甚至用「.SetFetchMode(‘MyTable的’,渴望)」我的查詢中,它仍然顯示‘代理’。
代理很好,但我需要記錄ID。任何人都遇到這個問題,並有一個簡單的修復?
我非常感謝這方面的幫助。
謝謝。
每要求,這裏是我運行,這將導致具有「0」的ID Patients.Children,因爲它顯示爲「代理」查詢:
public IList<Patients> GetAllPatients()
{
return FluentSessionManager.GetSession()
.CreateCriteria<Patients>()
.Add(Expression.Eq("IsDeleted", false))
.SetFetchMode("Children", Eager)
.List<Patients>();
}
你能不能在這裏粘貼你在第一段提到的所有代碼? – 2013-03-21 03:14:59
我添加了我正在使用的查詢,因爲這些記錄是「代理」,所以我給了ID爲0的孩子。請注意,並非所有記錄都是「代理」。哪些是間歇性的。 – 2013-03-21 14:33:29