LinqToSql => Manipuler le ExecuteQuery de façon générique (sans typage)
Bonjour @ tous,
Actuellement, j'utilise datareader1.read() pour charger une collection d'objet depuis une BDD.
Suite à un besoin d'optimisation, un membre de la communauté m'a conseillé de le faire à la LinqToSql (tout charger en mémoire plutôt que de la lecture séquentielle).
J'aimerais donc utiliser les outils de communication de EF, mais sans mettre en place tout le framework qui va avec.
J'ai réussi à faire ça:
Code:
1 2
| Dim dc As DataContext = New DataContext(myConnection)
Dim objs As List(Of Object) = dc.ExecuteQuery(Of Object)(StrSql).ToList() |
Le pire, c'est que ça fonctionne, mais il me renvoie un tableau d'objects dont je ne sais quoi faire.
Je n'ai pas réussi à la caster en quoi que ce soit que je connaisse.
J'ai essayé de faire:
Code:
1 2
| Dim dc As DataContext = New DataContext(myConnection)
Dim objs As List(Of DictionaryEntry) = dc.ExecuteQuery(Of DictionaryEntry)(StrSql).ToList() |
Et aussi avec un KeyValuePair(Of String, Object), mais il me fait un message d'erreur :
"System.Collections.DictionaryEntry' doit déclarer un constructeur par défaut (sans paramètre) pour être construit lors du mappage."
Avez vous une piste ?
Merci d'avance.