Nhibernate查询基于子属性的子的实体

时间:2011-04-01 17:29:40

标签: linq nhibernate queryover

我有一个实体,它有一个子实体,上面有一组实体。

public class Entity1  
{  
   public virtual Entity2 Entity2 {get; set}  
}  

public class Entity2  
{  
    private readonly IList<Entity3> _entity3s = new List<Entity3>();

    public virtual IEnumerable<Entity3> GetEntity3s() 
    { 
        return _entity3s;
    }

    public virtual void RemoveEntity3(Entity3 entity3) 
    { 
        _entity3s.Remove(entity3); 
    }

    public virtual void AddEntity3(Entity3 entity3)
    {
        if (!entity3.IsNew() && _entity3s.Contains(entity3)) return;
        _entity3s.Add(entity3);
    }
}  

public class Entity3  
{  
   public virtual int Id {get;set;}  
} 

我有Entity3.Id,我需要所有匹配的Entity1,如

session.Query<Entity1>(x=>x.Entity2.Entity3s.Any(y=>y.Id = 500));

我尝试了linq以及查询,并且都在“任何”命令上窒息 任何人都可以引导我朝着正确的方向前进吗?  &lt; ---编辑----&gt;
是的,所以我想我有一堆错误,现在我已经修复了所有问题,如果我直接暴露可枚举,我的查询就有效,但是当我将我的集合封装起来时,它不起作用。
我得到的错误是

  

无法解析表达式“[-1] .Entity2”,因为它具有不受支持的类型。只能解析查询源(即实现IEnumerable的表达式)和查询运算符   内部例外           消息“预期实现IEnumerable的类型,但找到'... Entity2'。\ r \ nParameter name:expression”string

谢谢,

RAIF

0 个答案:

没有答案