使用Criteria加入不同的表

时间:2013-09-01 09:01:38

标签: nhibernate join nhibernate-criteria detachedcriteria

我有两个不同的实体,我需要根据它们之间的公共实体属性加入它们,但是没有路径可以从实体创建Criteria到另一个实体! 请帮忙。

由于


- 编辑 -

对不起,也许我的问题不明确。

我有以下实体:

class A
{
    string Text {get;set;}
}
class B 
{
    string Text {get;set;}
}
class C
{
    string Text {get;set;}
    B B_Object_1 {get;set;}
}
class D
{
    A A_Object {get;set;}
    B B_Object_2 {get;set;}
}

我要做的是在 D 实体上创建条件,但是,我需要将其加入 C 实体,并且连接条件为 D.B_Object_2 == C.B_Object_1

因为在投影时,或者我需要选择的结果包含: D.A_Object.Text和C.B_Object_1.Text基于我上面的连接条件。

可以使用Criteria或在DetachedCriteria的帮助下完成吗?

由于

1 个答案:

答案 0 :(得分:0)

我想这是不可能的。至少没有找到任何整洁的解决方案。但有两种解决方法:

  1. Query only properties。不确定Criteria API是否可以处理这个问题,但HQL确实可以解决这个问题。
  2. 普通的旧SQL查询 - session.CreateSQLQuery()。