2009-02-04 51 views
0

所以我基本上想在我的AR类中有一个静态方法来删除指定表达式上的所有记录。但显然Castle Active Record没有IQuery params的重载(至少不是我使用的版本)。城堡活动记录帮助DeleteAll HQL字符串

这是我在“有效”,试图acheive:

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

它可以使用HQL(作为重载DeleteAll的一个允许其中HQL字符串,但我真的不尚未充分理解HQL及其所有权力,我希望我的堆栈溢出的同龄人一个可以帮助我把上面例子为HQL

回答

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

这个被翻译成:

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

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

这和其他常见问题在ActiveRecord wiki

+0

在你的翻译中“哪里”只是“pAppIdentifier”? – Ash 2009-02-06 06:30:51