منع nhibernate من الاسم المستعار بالترتيب
-
30-09-2019 - |
سؤال
لدي استعلام له ترتيب حسب الشر. يبدو SQL المتولد من Nhibernate
ORDER BY coalesce(x.Company as x__.Company, y.Company) asc
لا يُسمح بهذا "AS AS" بالترتيب حسب الفقرة في MS SQL Server. هل هناك أي طريقة يمكنني منع الاسم المستعار؟
يبدو استعلام المعايير الذي كتبته:
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"));
يجب تمرير المعلمات إلى وظيفة colesce (أو أي أخرى) بشكل منفصل (في الواقع ، كصفيف params) ، لا يتم دمجها في قائمة الإسقاط.
نصائح أخرى
لقد واجهت مشاكل مزعجة مماثلة. قد تضطر إلى اشتقاق فصل من PropertyProjection واستخدام ذلك في مكان الإسقاط. تجاوز طريقة tosqlstring وتجريد البند AS.
لا تنتمي إلى StackOverflow