Nhibernate 反向表达式。类标准

Nhibernate 反向表达式。类标准,nhibernate,icriteria,Nhibernate,Icriteria,我应该如何使用NHibernate标准编写向后的语句 WHERE 'somestring' LIKE [Property] + '%' 分问题: 能否访问SQLCriteria表达式中的抽象根别名 这在某种程度上可以通过使用SQLCriteria表达式实现 Expression.Sql("? like {alias}.[Property] + '.%'", value, NHibernateUtil.String); 但是,在类继承的情况下,{alias}将替换为列的不正确别名 示例(这些

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

WHERE 'somestring' LIKE [Property] + '%'
分问题: 能否访问SQLCriteria表达式中的抽象根别名


这在某种程度上可以通过使用SQLCriteria表达式实现

Expression.Sql("? like {alias}.[Property] + '.%'", value, NHibernateUtil.String);
但是,在类继承的情况下,
{alias}
将替换为列的不正确别名

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

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


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

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

Expression.Not(Expression.Like(“Property”、value、MatchMode.StartsWith”)
?这不是一回事。+1,我还对是否存在解决方案感兴趣。
public abstract class Parent 
{
    public virtual string Property { get; set; }
}

public class Child : Parent { }