nhibernate - QueryOver API 中的 SQL Where 表达式

标签 nhibernate queryover

我正在使用 QueryOverApi,试图在 where 子句中使用 SQL 表达式。我基本上:

        var query = CurrentSession.QueryOver<Appointment>(() => appt)
            .JoinAlias(() => appt.Work, () => work)
            .JoinAlias(()=>appt.Contact,()=>ct)
            .JoinAlias (()=>ct.Tags,()=>tag)
            .Where(Expression.Sql("(ct2_.OrganizationId in (SELECT...."))

这行得通,但我不得不硬编码我的别名 ct2_。我怎么知道 nHibernate 会将我的联系人表别名为 ct2。

最佳答案

你不能,至少不能以任何官方方式。请在此处查看 Unresolved 问题,其中有人提供了补丁:https://nhibernate.jira.com/browse/NH-1432

关于nhibernate - QueryOver API 中的 SQL Where 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346772/

相关文章:

c# - 流利的 NHibernate 错误 : The entity 'ClassMap` 1' doesn' t have an Id mapped

c# - FluentNhibernate和表/列名大写字母的保存和转义?

nhibernate - 使用字符串的 QueryOver OrderBy 子属性

c# - 限制引用实体的 NHibernate 查询

nhibernate - QueryOver<T> 上的析取总是指根实体

c# - NHibernate vs Entity Framework 6 对大量用户的性能

mysql - 为什么 NHibernate SchemaUpdate 在 MySQL 中比在 MS SQL Server 中慢得多

c# - 使用 CaSTLe Windsor 为单个接口(interface)注册多个组件

sql - NHibernate 等效于 SQL IsNull(列, 'defaultValue')

c# - nHibernate QueryOver 以编程方式构建?