2017-06-04 218 views
0

我嘗試此查詢過的標準:查詢過拋出異常

Area area = null 
var res = session.QueryOver<Area>(() => area); 

res.UnderlyingCriteria.Add(Expression.Where<Area>(x => x.shops.where(s => s.Id == 40503) != null)); 

扔給我這個異常:

「類型區的變量x的範圍內引用,但它沒有定義」

有人知道它爲什麼會發生?

+0

我寫在那裏不是空。我想返回包含商店ID爲40503的區域(身份證是例子) –

+0

我已經試過這個。它給我帶來了同樣的例外,我知道這個問題在潛在的標準中,因爲如果我改變它有點工作(但不檢查我搜索的內容) –

回答

2

您是否嘗試過使用您的area別名?

res.UnderlyingCriteria.Add(Expression.Where<Area>(() => area.shops.where(s => s.Id == 40503) != null)); 

即使這似乎過於複雜。這會更好:

Area area = null; 
Shop shop = null 
var res = session.QueryOver<Area>(() => area) 
.Left.JoinAlias(() => area.shops,() => shop) 
.Where(() => shop.Id == 40503);