سؤال
أقوم بإجراء مراجعة على نوع مختلف من أدوات الأورم ومولدات DAL اليوم. واحد منهم هو nettiers.
لدي نموذج Classic DB مع العملاء والطلب والطلب الطلبات، إلخ.
أريد إجراء انضمام داخلي معقد على تلك الطاولات. هذا هو استعلام SQL Orginal:
SELECT [Contact].LastName, SUM(OrderRow.Amount * Product.Price) TotalAmount
FROM Contact
INNER JOIN [Order] ON [Contact].ContactId=[Order].ContactId
INNER JOIN [OrderRow] ON [Order].OrderId=[OrderRow].OrderId
INNER JOIN [Product]ON OrderRow.ProductId=Product.ProductId
GROUP BY [OrderRow].OrderId, [Contact].LastName
HAVING SUM(OrderRow.Amount * Product.Price) > 100
لم أستطع إيجاد طريقة للحصول على هذا في التعليمات البرمجية مع Nettiers. هل تستطيع ؟
(ملاحظة: استخدام VS2008 SP1 و SQLSERVER2008 SP1)
المحلول
لا يمكنك القيام بذلك دون إجراء مخزن مخصص. الحل هنا: http://benpowell.org/paging-and-sorting-in-a-nettiers-custom-stored-procedure/
نصائح أخرى
لماذا لا تنشئ إجراءات مخزنة مخصصة لذلك، يولد Nettiers أساليب محددة للإجراءات المخزنة ضمن فئة TableProvider، بعد ذلك يمكنك ببساطة استدعاء MethD الخاص بك. من المحتمل أن تكون طريقة إرجاع طريقة مجموعة بيانات في هذه الحالة (غير متأكد!). يرى هنا