Dies ist wahrscheinlich ziemlich einfach, aber ich kann nicht scheinen, eine vernünftige Erklärung in jeder Dokumentation zu finden.NHibernate ISQLQuery SetParameter Problem
Ich versuche, eine NHibernate.ISQLQLQuery zu verwenden und SetResultTransformer() zu verwenden, um eine benutzerdefinierte Ergebnismenge aus einer benutzerdefinierten SQL-Abfrage zurückzugeben. Wie so:
public virtual IList<T> GetSQLObject<T>(string sql, IDbParameter[] parameters = null)
{
ISQLQuery qry = _sess.CreateSQLQuery(sql);
qry.SetResultTransformer(Transformers.AliasToBean(typeof(T)));
if (parameters != null) {
foreach (IDbParameter parameter in parameters) {
qry.SetParameter(parameter.Name, parameter.Value);
}
}
return qry.List<T>();
}
Aus bei den Beispielen suchen, scheint es, dass in der SQL-Abfrage muss ich Parameter verwenden im Format : param1 statt @ param1 als würde ich in einem Standard-SQL-Abfrage. Wenn ich die letztere Syntax in der Abfrage verwende, gibt es einen Fehler bei qry.SetParameter().
Gibt es einen Grund, warum ISQLQuery/NHibernate sie in diesem Format benötigt und nicht mit der normalen Syntax funktioniert?
Großartig, das macht Sinn, danke! – Brett