过滤NHibernate中的连接属性

时间:2009-10-16 09:38:01

标签: nhibernate fluent-nhibernate

我有两个表在我的域模型中被视为单个实体。

我通过在连接表的属性上调用IgnoreProperty然后使用Join和每个属性的Map来将它们连接到我的IAutoMappingOverride中。

此配置有效,但我在尝试对连接表的列进行过滤时丢失了。如果我打电话给以下人员:

Session.CreateCriteria<PrimaryEntity>()
    .CreateCriteria("ExtraPropertiesTable", JoinType.InnerJoin)
    .Add(Expression.Eq("Language", language)) // Column on ExtraPropertiesTable
    .List(primaryEntitiesList);

我得到以下异常:

  

QueryException:无法解析属性:ExtraPropertiesTable:PrimaryEntity

我也尝试过DetachedCriteria无济于事。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果两个表都映射到同一个实体,则不必在hibernate查询中进行连接,只应引用该实体,hibernate将在其生成的SQL查询中生成连接。此外,CreateCriteria方法需要映射实体的名称,而不是表。