反向表达。像标准

时间:2010-05-27 18:14:43

标签: nhibernate icriteria

我应该如何使用NHibernate标准编写反向声明?

WHERE 'somestring' LIKE [Property] + '%'

子问题:

您可以在SQLCriterion表达式中访问抽象根别名吗?


使用SQLCriterion表达式

可以实现这一点
Expression.Sql("? like {alias}.[Property] + '.%'", value, NHibernateUtil.String);

但是,在类继承的情况下,{alias}将替换为列的错误别名。

示例(这些类存储在单独的表中):

public abstract class Parent 
{
    public virtual string Property { get; set; }
}

public class Child : Parent { }

Child作为根类型执行的上述查询将使用{alias}表的别名而不是Child表替换Parent。这会导致列无效。

我需要执行如上所述的like语句,其中属性存在于父表而不是根类型表上。

1 个答案:

答案 0 :(得分:0)

您是否尝试在操作员面前添加NOT(!)以获得您想要的但不想要的。我认为它可能会奏效。