Pergunta
Eu estou fazendo um comentário sobre diferentes tipos de ferramentas ORM e geradores DAL hoje. Um deles é NetTiers.
Eu tenho um modelo clássico DB com o cliente, ordem, OrderDetail, etc ..
Eu quero executar participar de um complexo interior nessas tabelas. Esta é a consulta SQL original:
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
Eu não poderia encontrar uma maneira de conseguir este feito em código com NetTiers. Você pode?
(ps: usando VS2008 SP1 e SQLServer2008 SP1)
Solução
Você não pode fazê-lo sem um procedimento armazenado personalizado. Solução aqui: http://benpowell.org/ paginação-and-ordenação-em-processo a-nettiers-armazenado personalizado /
Outras dicas
Por que não criar um procedimento armazenado personalizado para isso, nettiers gera métodos específicos para procedimentos armazenados sob a classe TableProvider, depois você pode simplesmente chamar seu methd. o tipo de retorno do método será, provavelmente, um DataSet neste caso (não tenho certeza!). Consulte aqui