反向表达.像标准

Joe*_*oel 5 nhibernate icriteria

我应该如何使用NHibernate标准编写一个向后的语句?

WHERE 'somestring' LIKE [Property] + '%'
Run Code Online (Sandbox Code Playgroud)

子问题:

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


使用SQLCriterion表达式可以实现这一点

Expression.Sql("? like {alias}.[Property] + '.%'", value, NHibernateUtil.String);
Run Code Online (Sandbox Code Playgroud)

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

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

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

public class Child : Parent { }
Run Code Online (Sandbox Code Playgroud)

Child以root类型执行的上述查询将替换{alias}Child表的别名而不是Parent表.这会导致无效的列异常.

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

Voo*_*ild 0

您是否尝试过在您想要但不想要的运算符前面添加 NOT (!)。我想这可能有用。