【问题标题】:Help with a Castle Active Record DeleteAll HQL String帮助 Castle Activerecord 删除所有 SQL 字符串
【发布时间】:2010-08-19 20:58:06
【问题描述】:

所以我基本上想在我的 AR 类中有一个静态方法来删除指定表达式上的所有记录。但显然 Castle Active Record 没有 IQuery 参数过载(至少不是我使用的版本)。

这就是我“有效地”试图实现的目标:

public static void Delete(string pAppIdentifier) {
  DeleteAll(new EqExpression("AppIdentifier", pAppIdentifier));
}

可以使用 HQL(因为 DeleteAll 的重载之一允许使用 where HQL 字符串,但我真的还没有完全理解 HQL 及其所有功能,我希望我的 Stack Overflow 同行之一可以帮助我解决这个问题将上面的示例转换为 HQL。

【问题讨论】:

    标签: .net castle-activerecord


    【解决方案1】:
    DeleteAll(string.Format("AppIdentifier='{0}'", pAppIdentifier))
    

    这被翻译成:

    session.Delete(string.Format("from {0} where {1}", type.Name, where));
    

    顺便说一句,请确保 pAppIdentifier 参数是安全的,否则您将有潜在的 SQL 注入漏洞。

    ActiveRecord wiki 中的这个和其他常见问题。

    【讨论】:

    • 在你的翻译中“哪里”只是“pAppIdentifier”?
    • 其实,我要问的是:session.Delete(string.Format("from {0} where AppIdentifier='{1}'", type.Name, pAppIdentifier));
    猜你喜欢
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多