所以我基本上想在我的AR类中使用静态方法来删除指定表达式上的所有记录。但显然Castle Active Record并没有超载IQuery params(至少不是我使用的版本)。
这就是我“有效”地试图实现的目标:
public static void Delete(string pAppIdentifier) {
DeleteAll(new EqExpression("AppIdentifier", pAppIdentifier));
}
可以使用HQL(因为DeleteAll的重载之一允许HQL字符串,但我真的还没有完全理解HQL及其所有功能,我希望我的Stack Overflow之一可以帮助我转向上面的例子进入HQL。
答案 0 :(得分:4)
DeleteAll(string.Format("AppIdentifier='{0}'", pAppIdentifier))
这被翻译成:
session.Delete(string.Format("from {0} where {1}", type.Name, where));
BTW确保pAppIdentifier参数是安全的,否则您将有一个潜在的SQL注入漏洞。
ActiveRecord wiki中的这个和其他常见问题。