Seq.take
, который вы здесь вызываете, уже выполняется над материализованным результатом - он не является частью генератора SQL-запросов - он во многом похож на вызов AsEnumerable () для объекта IQueryable <>.Весь SQL, который будет создан, основан на том, что происходит внутри query { ... }
скобок.
Если вы прочитаете документы о F # SqlProvider, вы увидите, что есть специальные выражения, которые могутиспользоваться в операторе запроса:
let qdata = query {
for somerow in ctx.myschema.sometable do
sortBy (somerow.column)
skip 30
take 10
select (somerow)
}