Bonjour,
J'ai une méthode qui demande 3 paramètres :
De cette manière, cela fonctionne sans problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 iSession.Find(query as String, values() as Object, types() as NHibernate.Type.IType)
J'aimerai bien "construire" les 2 derniers paramètres cad :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 myArrayList = iSession.Find("Select from ExWorksCls e where e.ExWorksDesc = :Texte and e.ExWorksActif = :Actif", New Object() {txt, False}, New NHibernate.Type.IType() {NHibernateUtil.String, NHibernateUtil.Boolean})
New Object() {txt, False}
et
New NHibernate.Type.IType() {NHibernateUtil.String, NHibernateUtil.Boolean}
Voilà comment je fais :
Jusque là tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim myArr As Array = Array.CreateInstance(GetType(Object), 2) myArr.SetValue(txt, 0) myArr.SetValue(True, 1) Dim myArr2 As Array = Array.CreateInstance(GetType(NHibernate.Type.IType), 2) myArr2.SetValue(NHibernateUtil.String, 0) myArr2.SetValue(NHibernateUtil.Boolean, 1)
Par contre, si je remplace New Object() {txt, False} par myArr
J'ai une erreur de compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 myArrayList = iSession.Find("Select from ExWorksCls e where e.ExWorksDesc = :Texte and e.ExWorksActif = :Actif", myArr, New NHibernate.Type.IType() {NHibernateUtil.String, NHibernateUtil.Boolean})
Error 2 Overload resolution failed because no accessible 'Find' can be called without a narrowing conversion:
'Public Function Find(query As String, values() As Object, types() As NHibernate.Type.IType) As System.Collections.IList': Argument matching parameter 'values' narrows from 'System.Array' to '1-dimensional array of Object'.
'Public Function Find(query As String, value As Object, type As NHibernate.Type.IType) As System.Collections.IList': Argument matching parameter 'type' narrows from '1-dimensional array of NHibernate.Type.IType' to 'NHibernate.Type.IType'.
Où est l'erreur ?
Merci d'avance.
Gridin
Partager