防止NHIBERNATE按顺序混为
-
30-09-2019 - |
题
我的查询有一个按子句的订单。 NHIBERNATE产生的SQL看起来像
ORDER BY coalesce(x.Company as x__.Company, y.Company) asc
这是在MS SQL Server中的子句中不允许按顺序进行的“ AS”失败。有什么办法可以防止别名?
我写的标准查询看起来像:
var orderBy = Projections.SqlFunction("coalesce", NHibernateUtil.String,
Projections.ProjectionList()
.Add(Projections.Property("x.Company"))
.Add(Projections.Property("y.Company")));
var order = Order.Asc(orderBy);
criteria.AddOrder(order);
解决方案
Projections.SqlFunction("coalesce",
NHibernateUtil.String,
Projections.Property("x.Company"),
Projections.Property("y.Company"));
合并功能的参数应分别传递(实际上是作为参数数组),而不是合并到投影列表中。
其他提示
我有类似的烦人问题。您可能必须从propertyprodoction中得出一个类,并使用Projections.property()的Inther。覆盖TOSQLSTRING方法并剥离AS子句。
不隶属于 StackOverflow