我应该如何使用 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
表的别名。这会导致无效的列异常。
我需要执行上面的类似语句,其中属性存在于父表上而不是根类型表上。