Вызов метода в 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);