我在条件上尝试了这个查询:
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 :(得分: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);