2012-01-19 50 views
1

中加入多个条件Doe的任何人都知道如何在LINQ to NHIBERNATE中使用多个条件进行连接? 有一个条件加入看起来是这样的:Linq到nHibernate v3.2 - 在条款

var Query = from p in Session.Parent 
    join c in child on p.id equals c.parent_id 
    select p 

我的SQL查询:

Select * 
from parent t1 
left join Child t2 
    on t1.id = t2.parent_id 
    and t2.age > 18 

我发现多个条件中的一个语法LINQ to SQL和它的工作原理(我试过在LinqPad) 但当我试图在nHibernate中执行此代码时,我收到异常: “方法或操作未实现”。对LINQ to SQL的语法是:

var Query = from p in Session.Parent 
    join c in child on p.id equals c.parent_id into pc 
    from pcg in pc.Where(c => c.age > 18) 
    select p.PigProductid 

看来,这个功能在LINQ还没有实现NHibernate的,但 也许我错了(我希望我)。

+0

是,NHibernate的LINQ提供程序让我时而忧伤。 – Nagg

回答

0

最简单的方法是对父类中的孩子进行引用或收集。

也许folwwing可以工作

var query = from p in Session.Parent 
      from c in Session.Child.Where(c => c.age > 18) 
      where p.Id == c.parent_id 
      select p.PigProductid; 
+0

谢谢,我试过这个,不幸的是它不工作。 关于参考和收藏 - 你说得对,如果你有这些,nHibernate 知道要做自己的参与,但通常引用是基于 的一个关键。我想要多于一个键的连接。不管怎样,谢谢你... – OlgaB

+0

NHibernate支持多个列的引用。我在日常工作中有很多。你可以发布你的表格结构吗? – Firo

+0

对不起,我的错误,我想过,你是对的,我们可以设置多个领域的参考。 但据我所知,参考生成内部连接。你知道是否有一种方法来生成引用的左连接? – OlgaB