這裏是我的代碼NHibernate的不一致的抓取行爲
if (des.X == null)
{
if (src.IsL)
{
des.X = new Y();
var l = lRepo.Find().Where(file => file.Id == src.drId).First();
((Y)des.X).L = l;
}
else
{
D d = dRepo.Get(src.DrugId);
if (d is N)
{
des.X = new Y();
((Y)des.X).D = d;
((Y)des.X).L = ((N)d).L;
}
else
if (d is IF)
{
des.X = new IeI();
des.X.D = d;
}
}
}
,當我問if (d is N)
在第一次當我發送一個創建請求,並給我寄了N ID的問題發生,它的計算結果它是真實的,但是當我發送相同的數據進行更新時,它將其評估爲假。
我有點困惑,我沒有合理的解釋,所以任何人都可以幫助我解決這個問題。
更新它時會返回一個代理,但創建它時會返回一個正常實體。
在這種情況下,Untrack和非延遲加載解決方案可以工作,但我不認爲它們是有效的解決方案。
請任何幫助。