2009-07-27 5 views
0

この問題に対処する人は誰もいません。 Group Byまたは Distinct with Pagingを使用すると、SubSonicが不正なSQLを生成します。これは既知のエラーですか?SubSonicは、ページングでGroup ByまたはDistinctを使用すると、不正なSQLを生成します。

ページングを使用すると、グループbyが間違った場所にあることに注意してください。

ページングなし亜音速のSQL出力:

exec sp_executesql N'SELECT [dbo].[vwMapProject].[Id], [dbo].[vwMapProject].[Name] 
FROM [dbo].[vwMapProject] 
INNER JOIN [dbo].[Product_ProductComponent] ON [dbo].[vwMapProject].[ProductId] = [dbo].[Product_ProductComponent].[ProductId] 
INNER JOIN [dbo].[ProductComponent] ON [dbo].[Product_ProductComponent].[ProductComponentId] = [dbo].[ProductComponent].[Id] 
WHERE [dbo].[ProductComponent].[ExternalId] LIKE @ExternalId0 
GROUP BY [dbo].[vwMapProject].[Id], [dbo].[vwMapProject].[Name] 
',N'@ExternalId0 nvarchar(8)',@ExternalId0=N'GC767AV%' 

ページングでは亜音速のSQL出力:

exec sp_executesql N' 
SELECT * 
FROM  (SELECT ROW_NUMBER() OVER (ORDER BY Id) AS Row, 
[dbo].[vwMapProject].[Id], [dbo].[vwMapProject].[Name] 
FROM [dbo].[vwMapProject] 
INNER JOIN [dbo].[Product_ProductComponent] ON [dbo].[vwMapProject].[ProductId] = [dbo].[Product_ProductComponent].[ProductId] 
INNER JOIN [dbo].[ProductComponent] ON [dbo].[Product_ProductComponent].[ProductComponentId] = [dbo].[ProductComponent].[Id] 
GROUP BY [dbo].[vwMapProject].[Id], [dbo].[vwMapProject].[Name] 
WHERE [dbo].[ProductComponent].[ExternalId] LIKE @ExternalId0 
) AS PagedResults 
WHERE Row >= 1 AND Row <= 20',N'@ExternalId0 nvarchar(8)',@ExternalId0=N'GC767AV%' 
+0

彼のブログ[http:// blog .wekeroad.com /)彼の[github repo](http://github.com/subsonic/SubSonic-3.0/issues)で問題を報告する必要があります。 – redsquare

答えて

2

これは、現在のリリースで修正されなければならない - 3.0.0.3。あなたがそれを持っていないならば、これは早い時期に報告されたバグで、私はそれを釘付けようとしていましたが、私たちのプロジェクトサイトに向かいましょう:)

+0

素晴らしいです、ありがとうRob –

関連する問題