查询过抛出异常

问题描述:

我尝试此查询过的标准:查询过抛出异常

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

我已经试过这个。它给我带来了同样的例外,我知道这个问题在潜在的标准中,因为如果我改变它有点工作(但不检查我搜索的内容) –

您是否尝试过使用您的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);