我正在使用 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/