包含连接的 nHibernate 公式
nHibernate Formula Containing A Join
当我指定以下公式时:
Map(x => x.PendingInviteCount)
.Access
.ReadOnly()
.Formula("(SELECT COUNT(ui.UserInviteId)
FROM [UserInvite] ui JOIN [UserInviteOrganisation] uio
ON ui.UserInviteId = uio.UserInviteId
WHERE uio.OrganisationId = organisationId)");
生成的 sql 如下所示:
SELECT COUNT(ui.UserInviteId)
FROM [UserInvite] ui
JOIN [UserInviteOrganisation] organisati0_.uio on ui.UserInviteId = uio.UserInviteId
WHERE uio.OrganisationId = organisati0_.organisationId
由于 uio 以 organisatio0_ 为前缀而失败。
是否可以创建包含 JOIN 的公式?
您应该使用 AS 关键字来设置 table 的别名。我不认为 NHibernate 会按照当前编写的方式来处理它。
当我指定以下公式时:
Map(x => x.PendingInviteCount)
.Access
.ReadOnly()
.Formula("(SELECT COUNT(ui.UserInviteId)
FROM [UserInvite] ui JOIN [UserInviteOrganisation] uio
ON ui.UserInviteId = uio.UserInviteId
WHERE uio.OrganisationId = organisationId)");
生成的 sql 如下所示:
SELECT COUNT(ui.UserInviteId)
FROM [UserInvite] ui
JOIN [UserInviteOrganisation] organisati0_.uio on ui.UserInviteId = uio.UserInviteId
WHERE uio.OrganisationId = organisati0_.organisationId
由于 uio 以 organisatio0_ 为前缀而失败。
是否可以创建包含 JOIN 的公式?
您应该使用 AS 关键字来设置 table 的别名。我不认为 NHibernate 会按照当前编写的方式来处理它。