nhibernate生成的sql - 表的别名

时间:2015-08-10 14:33:31

标签: sql-server hibernate nhibernate hibernate-criteria sql-execution-plan

在生成查询时,有没有办法阻止NHibernate为表生成别名?

我在SQL服务器上有一个执行计划,我需要在我的查询中应用这个计划,但是因为每次执行select查询时都不能使用,所以我得到了一个不同的别名。

例如:

from dbo.Accounts accountdet0_ where  accountdet0_.AccountID = 1366

我可以使用哪种属性或配置来控制此别名吗?

感谢先进的任何帮助

1 个答案:

答案 0 :(得分:0)

虽然依赖于某些自定义内容的生成别名 - 从SQL Server的角度来看......这些生成的别名非常稳定。

运行相同的查询(即使使用不同的参数)您想要的次数 - 结果SQL将相同

甚至更多,因为这样的参数化语法:

exec sp_executesql N'SELECT department0_.Department_ID as Department1_200_0_,
 department0_.Code as Code200_0_, 
 department0_.Description as Description200_0_, ...
FROM [dbo].[Department] department0_ 
WHERE department0_.Department_ID=@p0',N'@p0 int',@p0=1

执行计划将重复用于任何数量的类似查询,只有不同的参数......