この問題に対処する人は誰もいません。 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%'
彼のブログ[http:// blog .wekeroad.com /)彼の[github repo](http://github.com/subsonic/SubSonic-3.0/issues)で問題を報告する必要があります。 – redsquare