5

我应该如何使用 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表的别名。这会导致无效的列异常。

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

4

1 回答 1

0

您是否尝试在运算符前面为您想要但不想要的运算符添加 NOT (!)。我认为它可能会奏效。

于 2010-05-27T18:19:15.883 回答