Nhibernate高级过滤

时间:2016-05-19 12:08:25

标签: c# nhibernate filtering queryover

我有一个下表格式

$.each(document.aggregations.2.buckets, function( key, value ) {
  alert( 'this is count: ' + value.count );
  alert( 'this is key: ' + value.key)
});

实体是......井实体和属性是非常通用的信息扩展属性集合的键值集合(它确实有这样的理由,而不是实体中的列)。

我需要创建的是使用AND和OR组合的高级过滤,例如,让我们说

[Key =“Type”,Value =“Car”] AND([Key =“Brand”,Value =“Mercedes”]或[Key =“Brand”,Value =“Porsche”])

应该粗鲁地转化为这个:

+----------+  1        n  +--------------+
|  Entity  |--------------|  Properties  |
|----------|              |--------------|
| +Id      |              |  +Key        |
|          |              |  +Value      |
+----------+              +--------------+

这个过滤器将直接来自视图,并且会更加复杂和动态,但这个想法是一样的。

我不知道的是如何解决我想在NHibernate中的同一属性路径上多次JOIN的情况。我知道有很多问题在这个主题上看起来很相似,但几乎总是答案是......使用HQL(我们在QueryOver中确实有一些讨厌的查询,所以我们真的不想使用它)。我不相信这是nhibernate的这种不常见的用例,hql只是答案。 此外,我更喜欢使用QueryOver,或者更喜欢使用Criteria。 在Nhibernate中有一些称为过滤器的东西,看起来这就是我想要的东西,但我之前从未使用它,所以我真的不知道它是否是这个强大的我不知道如何在其中编写ORs语句。 PS:我正在使用NHibernate 4。*。

0 个答案:

没有答案