帮助Castle Activerecord删除所有HQL字符串

时间:2009-02-04 06:15:59

标签: .net castle-activerecord

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

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

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

可以使用HQL(因为DeleteAll的重载之一允许HQL字符串,但我真的还没有完全理解HQL及其所有功能,我希望我的Stack Overflow之一可以帮助我转向上面的例子进入HQL。

1 个答案:

答案 0 :(得分:4)

DeleteAll(string.Format("AppIdentifier='{0}'", pAppIdentifier))

这被翻译成:

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

BTW确保pAppIdentifier参数是安全的,否则您将有一个潜在的SQL注入漏洞。

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