Advertisement
Guest User

Untitled

a guest
Oct 24th, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.72 KB | None | 0 0
  1. var q = _db
  2. .Products
  3. .Where(p => p.ProductID == productName)
  4. .Select(p => new {
  5. p.ProductID,
  6. p.Title,
  7. Options = p
  8. .Options
  9. .Select(o => new {
  10. o.OptionId,
  11. o.Title,
  12. Values = o
  13. .Values
  14. .Select(v => new {
  15. v.OptionValueId,
  16. v.Title,
  17. v.OptionId,
  18. CountProducts = _db.Products.Count(pp => pp.Options.Any(oo => oo.Values.Any(ooo => ooo.Title == v.Title)))
  19. })
  20. })
  21. })
  22. .FirstOrDefault();
  23.  
  24. SELECT
  25. [Project6].[ProductID] AS [ProductID],
  26. [Project6].[Title] AS [Title],
  27. [Project6].[C2] AS [C1],
  28. [Project6].[OptionId] AS [OptionId],
  29. [Project6].[Title1] AS [Title1],
  30. [Project6].[C1] AS [C2],
  31. [Project6].[OptionValueId] AS [OptionValueId],
  32. [Project6].[Title2] AS [Title2],
  33. [Project6].[OptionId1] AS [OptionId1],
  34. [Project6].[C3] AS [C3]
  35. FROM ( SELECT
  36. [Project5].[ProductID] AS [ProductID],
  37. [Project5].[Title] AS [Title],
  38. [Project5].[OptionId] AS [OptionId],
  39. [Project5].[Title1] AS [Title1],
  40. [Project5].[OptionValueId] AS [OptionValueId],
  41. [Project5].[Title2] AS [Title2],
  42. [Project5].[OptionId1] AS [OptionId1],
  43. CASE WHEN ([Project5].[OptionId] IS NULL) THEN CAST(NULL AS int) WHEN ([Project5].[OptionValueId] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C1],
  44. CASE WHEN ([Project5].[OptionId] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C2],
  45. [Project5].[C1] AS [C3]
  46. FROM ( SELECT
  47. [Project1].[ProductID] AS [ProductID],
  48. [Project1].[Title] AS [Title],
  49. [Project1].[OptionId] AS [OptionId],
  50. [Project1].[Title1] AS [Title1],
  51. [Project1].[OptionValueId] AS [OptionValueId],
  52. [Project1].[Title2] AS [Title2],
  53. [Project1].[OptionId1] AS [OptionId1],
  54. CASE WHEN ([Project1].[OptionId] IS NULL) THEN CAST(NULL AS int) WHEN ([Project1].[OptionValueId] IS NULL) THEN CAST(NULL AS int) ELSE (SELECT
  55. COUNT(1) AS [A1]
  56. FROM [Products] AS [Extent4]
  57. WHERE EXISTS (SELECT
  58. 1 AS [C1]
  59. FROM ( SELECT
  60. [Extent5].[OptionId] AS [OptionId]
  61. FROM [Options] AS [Extent5]
  62. WHERE [Extent4].[ProductID] = [Extent5].[Product_ProductID]
  63. ) AS [Project2]
  64. WHERE EXISTS (SELECT
  65. 1 AS [C1]
  66. FROM [OptionValues] AS [Extent6]
  67. WHERE ([Project2].[OptionId] = [Extent6].[OptionId]) AND ([Extent6].[Title] = [Project1].[Title2])
  68. )
  69. )) END AS [C1]
  70. FROM ( SELECT
  71. [Extent1].[ProductID] AS [ProductID],
  72. [Extent1].[Title] AS [Title],
  73. [Join1].[OptionId1] AS [OptionId],
  74. [Join1].[Title1] AS [Title1],
  75. [Join1].[OptionValueId] AS [OptionValueId],
  76. [Join1].[Title2] AS [Title2],
  77. [Join1].[OptionId2] AS [OptionId1]
  78. FROM [Products] AS [Extent1]
  79. LEFT OUTER JOIN (SELECT [Extent2].[OptionId] AS [OptionId1], [Extent2].[Title] AS [Title1], [Extent2].[Product_ProductID] AS [Product_ProductID], [Extent3].[OptionValueId] AS [OptionValueId], [Extent3].[Title] AS [Title2], [Extent3].[OptionId] AS [OptionId2]
  80. FROM [Options] AS [Extent2]
  81. LEFT OUTER JOIN [OptionValues] AS [Extent3] ON [Extent2].[OptionId] = [Extent3].[OptionId] ) AS [Join1] ON [Extent1].[ProductID] = [Join1].[Product_ProductID]
  82. WHERE [Extent1].[ProductID] = @p__linq__0
  83. ) AS [Project1]
  84. ) AS [Project5]
  85. ) AS [Project6]
  86. ORDER BY [Project6].[ProductID] ASC, [Project6].[C2] ASC, [Project6].[OptionId] ASC, [Project6].[C1] ASC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement