【问题标题】:Calling Method in Subsonic 3.0 ActiveRecord QuerySubsonic 3.0 ActiveRecord 查询中的调用方法
【发布时间】:2013-05-13 15:03:16
【问题描述】:

我正在尝试在亚音速查询中运行自定义方法。这是我的查询:

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

我收到了这个错误:

The method 'MakeURL' is not supported

我正在使用 Subsonic 3。任何想法都会很棒,谢谢。

【问题讨论】:

    标签: c# linq subsonic subsonic3


    【解决方案1】:

    这根本不可能,

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多