C# 内联网
今天我对不同类型的ORM工具和DAL生成器进行了回顾。其中一个是内蒂尔斯 我有一个带有客户、订单、订单详情等的经典DB模型 我想对这些表执行复杂的内部联接。这是原始SQL查询:C# 内联网,c#,.net,.nettiers,C#,.net,.nettiers,今天我对不同类型的ORM工具和DAL生成器进行了回顾。其中一个是内蒂尔斯 我有一个带有客户、订单、订单详情等的经典DB模型 我想对这些表执行复杂的内部联接。这是原始SQL查询: SELECT [Contact].LastName, SUM(OrderRow.Amount * Product.Price) TotalAmount FROM Contact INNER JOIN [Order] ON [Contact].ContactId=[Order].ContactId
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的代码完成这项工作的方法。你能吗
(ps:使用VS2008 SP1和SQLServer2008 SP1)为什么不为此创建一个自定义存储过程,nettiers会在TableProvider类下为存储过程生成特定的方法,之后您可以简单地调用您的方法。在这种情况下,方法返回类型可能是数据集(不确定!)。请参见如果没有自定义存储过程,则无法执行此操作。这里的解决方案:我知道,但这会将项目固定到特定的供应商。NHibernate或LLBLGenPro使用自己的对象查询语言来实现这一点,它与数据库无关