fsprojects / SQLProvider

A general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
https://fsprojects.github.io/SQLProvider
Other
572 stars 146 forks source link

Incorrectly generated SQL request when used skip #581

Closed RahimovIR closed 5 years ago

RahimovIR commented 5 years ago

Description

Incorrectly generated SQL request when used skip.

This code generates the following SQL query.

let iq s t = query {
    for image in ctx.Dbo.TImage do
    sortBy (image.FImageid)
    skip s
    take t
    select image.FName
} 
iq 10 10 |> Seq.iter(fun (f) -> printfn "%A" f)
WITH CTE AS (
  SELECT
    [TImage].[F_NAME] as 'F_NAME',
    ROW_NUMBER() OVER(
      ORDER BY
        [F_IMAGEID]
    ) AS RN
  FROM
    [dbo].[TImage] as [TImage]
)
SELECT
  [TImage].[F_NAME] as 'F_NAME'
FROM
  CTE []
WHERE
  RN BETWEEN 11
  AND 20

CTE [] should be CTE [TImage]

This work fine

let iq s t = query {
    for image in ctx.Dbo.TImage do
    sortBy (image.FImageid)
    skip s
    take t
    select image
} 
iq 10 10 |> Seq.iter(fun (f) -> printfn "%A" f)

difference in select image.FName or select image

Related information