Вызов метода в Subsonic 3.0 ActiveRecord Query

Я пытаюсь запустить собственный метод в дозвуковых запросах. Вот мой запрос:

Page = Pages.SingleOrDefault(o=>Misc.MakeURL(o.Title) == URL);

и я получаю эту ошибку:

The method 'MakeURL' is not supported

Я использую Subsonic 3. Любые идеи были бы отличными, спасибо.

1 ответ

Решение

Это просто невозможно,

дозвуковой переводит ваше выражение в SQL, так

Pages.SingleOrDefault(o => o.Title == "title");

вероятно сгенерирует подобный запрос как этот

SELECT * FROM pages WHERE title = 'title' LIMIT 1

и вы ожидаете от Subsononic преобразования вашего метода MakeUrl(...) в SQL. Что вы ожидаете?

SELECT * FROM pages WHERE MAKEURL(title) = 'title' LIMIT 1

Однако вы можете либо просто запросить заголовок, либо вызвать ToList() на своих страницах, но при этом все записи будут извлечены из базы данных.

Page = Pages.ToList().SingleOrDefault(o=>Misc.MakeURL(o.Title) == URL);
Другие вопросы по тегам