Quantcast
Channel: Entity Framework
Viewing all articles
Browse latest Browse all 10318

Created Issue: Linq Funcletization :: consider funcletizing inline ICollection. Count [781]

$
0
0
We funcletize ICollection.Count, if passed as a parameter, e.g.

var localList = new List<int> { 1, 2, 3 };
var query = context.Categories.Select(c => localList.Count);

produces the following query:

SELECT
@p__linq__0 AS [C1]
FROM [dbo].[Categories] AS [Extent1]

/*
Int32 p__linq__0 = 3
*/

However, if we inline the list:

var query = context.Categories.Select(c => new List<int> { 1, 2, 3 }.Count);

it doesn't get funcletized and the query we produce is much uglier:

SELECT
[GroupBy1].[A1] AS [C1]
FROM [dbo].[Categories] AS [Extent1]
CROSS JOIN (SELECT
COUNT(1) AS [A1]
FROM (SELECT
1 AS [C0]
FROM (SELECT
1 AS [C0]
FROM ( SELECT 1 AS X ) AS [SingleRowTable1]
UNION ALL
SELECT
1 AS [C0]
FROM ( SELECT 1 AS X ) AS [SingleRowTable2]) AS [UnionAll1]
UNION ALL
SELECT
1 AS [C0]
FROM ( SELECT 1 AS X ) AS [SingleRowTable3]) AS [UnionAll2] ) AS [GroupBy1]

Viewing all articles
Browse latest Browse all 10318

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>