我正在尝试在亚音速查询中运行自定义方法。这是我的查询:
Page = Pages.SingleOrDefault(o=>Misc.MakeURL(o.Title) == URL);
我收到了这个错误:
The method 'MakeURL' is not supported
我正在使用 Subsonic 3。任何想法都会很棒,谢谢。
这根本不可能,
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);