亚音速3.0 ActiveRecord查询中的调用方法

本文关键字:调用 方法 查询 ActiveRecord 亚音速 | 更新日期: 2023-09-27 18:13:15

我试图在亚音速查询中运行自定义方法。以下是我的查询:

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

,我得到这个错误:

The method 'MakeURL' is not supported

我使用亚音速3。如果有什么想法就太好了。

亚音速3.0 ActiveRecord查询中的调用方法

这是不可能的,

subsonic将表达式转换为SQL,因此

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

可能会生成类似的查询,如

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

,您希望subsonic将您的MakeUrl(…)方法转换为SQL。你想要什么?

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

但是,您可以只查询标题或调用页面上的ToList(),但这将从数据库中提取所有记录。

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