我应该如何使用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语句,其中属性存在于父表而不是根类型表上。
答案 0 :(得分:0)
您是否尝试在操作员面前添加NOT(!)以获得您想要的但不想要的。我认为它可能会奏效。