Помогите с Замком Активная Запись удаляет всю строку HQL

StackOverflow https://stackoverflow.com/questions/510258

  •  21-08-2019
  •  | 
  •  

Вопрос

Итак, я в принципе хочу иметь статический метод в моем классе AR для удаления всех записей в указанном выражении.Но, по-видимому, у Castle Active Record нет перегрузки для параметров IQuery (по крайней мере, не той версии, которую я использую).

Это то, чего я "эффективно" пытаюсь достичь:

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

Можно использовать HQL (поскольку одна из перегрузок для deleteAll допускает строку where HQL, но я действительно еще не до конца понимаю HQL и все его возможности, и я надеялся, что один из моих коллег по переполнению стека сможет помочь мне превратить приведенный выше пример в HQL.

Это было полезно?

Решение

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

это переводится на:

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

Кстати, убедитесь, что параметр pAppIdentifier безопасен, иначе у вас будет потенциальная уязвимость при внедрении SQL.

Этот и другие распространенные вопросы в ActiveRecord вики.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top