From 120bb7af64c4124e4bb0d52117f72e03aab8728c Mon Sep 17 00:00:00 2001 From: Koen Date: Fri, 4 Jun 2021 02:05:30 +0800 Subject: [PATCH] Update README.md --- README.md | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index ed5901f..71c48c0 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,8 @@ var result = _dbContext.Users The following query gets generated (assuming SQL Server as a database provider) ```sql +DECLARE @__sampleUser_UserName_0 nvarchar(4000) = N'Jon'; + SELECT ( SELECT COALESCE(SUM([p].[ListPrice] * CAST([o].[Quantity] AS decimal(18,2))), 0.0) FROM [OrderItem] AS [o] @@ -61,30 +63,18 @@ SELECT ( WHERE ( SELECT TOP(1) [o0].[Id] FROM [Orders] AS [o0] - WHERE ([u].[Id] = [o0].[UserId]) AND ([o0].[CreatedDate] >= DATEADD(day, CAST(-30.0E0 AS int), GETUTCDATE())) + WHERE ([u].[Id] = [o0].[UserId]) AND [o0].[FulfilledDate] IS NOT NULL ORDER BY [o0].[CreatedDate] DESC) IS NOT NULL AND (( SELECT TOP(1) [o1].[Id] FROM [Orders] AS [o1] - WHERE ([u].[Id] = [o1].[UserId]) AND ([o1].[CreatedDate] >= DATEADD(day, CAST(-30.0E0 AS int), GETUTCDATE())) - ORDER BY [o1].[CreatedDate] DESC) = [o].[OrderId])) + (( - SELECT COALESCE(SUM([p0].[ListPrice] * CAST([o2].[Quantity] AS decimal(18,2))), 0.0) - FROM [OrderItem] AS [o2] - INNER JOIN [Products] AS [p0] ON [o2].[ProductId] = [p0].[Id] - WHERE ( - SELECT TOP(1) [o3].[Id] - FROM [Orders] AS [o3] - WHERE ([u].[Id] = [o3].[UserId]) AND ([o3].[CreatedDate] >= DATEADD(day, CAST(-30.0E0 AS int), GETUTCDATE())) - ORDER BY [o3].[CreatedDate] DESC) IS NOT NULL AND (( - SELECT TOP(1) [o4].[Id] - FROM [Orders] AS [o4] - WHERE ([u].[Id] = [o4].[UserId]) AND ([o4].[CreatedDate] >= DATEADD(day, CAST(-30.0E0 AS int), GETUTCDATE())) - ORDER BY [o4].[CreatedDate] DESC) = [o2].[OrderId])) * ( - SELECT TOP(1) [o5].[TaxRate] - FROM [Orders] AS [o5] - WHERE ([u].[Id] = [o5].[UserId]) AND ([o5].[CreatedDate] >= DATEADD(day, CAST(-30.0E0 AS int), GETUTCDATE())) - ORDER BY [o5].[CreatedDate] DESC)) AS [GrandTotal] + WHERE ([u].[Id] = [o1].[UserId]) AND [o1].[FulfilledDate] IS NOT NULL + ORDER BY [o1].[CreatedDate] DESC) = [o].[OrderId])) * ( + SELECT TOP(1) [o2].[TaxRate] + FROM [Orders] AS [o2] + WHERE ([u].[Id] = [o2].[UserId]) AND [o2].[FulfilledDate] IS NOT NULL + ORDER BY [o2].[CreatedDate] DESC) AS [GrandTotal] FROM [Users] AS [u] -WHERE [u].[UserName] = N'Jon' +WHERE [u].[UserName] = @__sampleUser_UserName_0 ``` Projectable properties and methods have been inlined! the generated SQL could be improved but this is what EFCore (v5) gives us.