( Отказ от ответственности: Я изменил / запутал некоторые имена переменных / таблиц / столбцов здесь по соображениям безопасности. Пожалуйста, простите меня, если что-то выглядит не так.)
Я создаю интерфейс для базы данных Oracle 10g и пытаюсь получить выгружаемые данные.Помимо подкачки страниц, следующий код SubSonic 2.2 дает мне то, что я хочу, в том порядке, в котором я хочу:
var q = new Select()
.From(AppDb.MyTable.Schema)
.Where(AppDb.MyTable.DisabledDateColumn).IsNull()
.OrderDesc(AppDb.MyTable.CreatedDateColumn.ColumnName)
System.Console.Out.Writeline(q.BuildStatement());
Это приводит к следующему SQL:
SELECT
MYSCHEMA.MYTABLE.ID,
MYSCHEMA.MYTABLE.DISABLED_DATE
FROM
MYSCHEMA.MYTABLE
WHERE
MYSCHEMA.MYTABLE.DISABLED_DATE IS NULL
ORDER BY
CREATED_DATE DESC
Затем я пытаюсьввести подкачку:
var q = new Select()
.From(AppDb.MyTable.Schema)
.Where(AppDb.MyTable.DisabledDateColumn).IsNull()
.OrderDesc(AppDb.MyTable.CreatedDateColumn.ColumnName)
.Paged(0, 10);
И это стирает мои предложения WHERE и ORDER BY:
SELECT * FROM (
SELECT
MYSCHEMA.MYTABLE.ID,
MYSCHEMA.MYTABLE.DISABLED_DATE,
ROWNUM as row_number
FROM
MYSCHEMA.MYTABLE
)
WHERE
row_number BETWEEN 1 AND 10
Я новичок в SubSonic, поэтому я не знаю, если это ошибкаили я просто не делаю этого предпочтительным способом, или если Oracle требует, чтобы это было сделано другим, более ориентированным на Oracle способом.(Похоже, что Oracle требует этого от всего.)
Что мне нужно, если не очевидно, чтобы каждая последующая страница включала в себя 10 следующих недавно созданных, не отключенных записей.Как я могу сделать это в SubSonic 2.2?