LINQが生成するSQLその3

LINQのgroup byは、SQLのDISTINCTに変換される!?

// Silverlight
var query =
    from schedule in _context.GetV_YMD_LISTQuery()
    where schedule.DataKubun != Common.DataKubunList.RaceUma.Delete
        && schedule.Ymd <= this.Ymd
    orderby schedule.Ymd descending
    select schedule;
// WCF RIA Services
var query = from schedule in ObjectContext.SCHEDULEs
            group schedule by new
            {
                schedule.Ymd,
                schedule.DataKubun
            }
            into grouping
            select new V_YMD_LIST
            {
                Ymd = grouping.Key.Ymd,
                DataKubun = grouping.Key.DataKubun
            };

// 生成されたSQL
SELECT 
[Distinct1].[Ymd] AS [Ymd], 
[Distinct1].[DataKubun] AS [DataKubun]
FROM ( SELECT DISTINCT 
    [Extent1].[DataKubun] AS [DataKubun], 
    [Extent1].[Ymd] AS [Ymd]
    FROM [dbo].[SCHEDULE] AS [Extent1]
    WHERE (N'0' <> [Extent1].[DataKubun]) AND ([Extent1].[Ymd] <= 20110626)
)  AS [Distinct1]
ORDER BY [Distinct1].[Ymd] DESC

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中