Внутренние соединения с NetTiers
Вопрос
Сегодня я провожу обзор различных инструментов ORM и генераторов DAL.Один из них — NetTiers.
У меня есть классическая модель БД с клиентом, заказом, подробностями заказа и т. д.
Я хочу выполнить сложное внутреннее соединение этих таблиц.Это исходный SQL-запрос:
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, после чего вы можете просто вызвать свой метод.в этом случае тип возвращаемого значения метода, вероятно, будет DataSet (не уверен!).Видеть здесь