Pb réactualisation propriétés de Navigation
Bonjour,
J'éprouve qq pb avec la réactualisation des propriétés de navigation (tables liées) sous EF 5.0 / Winform lié sur une base SQL Server
J’ai :
Une ClassePrincipale que je charge par
Code:
1 2 3
| Dim QueryPrincipale = From c In ctx. ClassePrincipales Select c
QueryPrincipale.Load()
ClassePrincipaleBindingSource.DataSource = ctx. ClassePrincipale.Local.ToBindingList |
Cette ClassePrincipale est liée à une table de jonction dans SQL Server comprenant 4 champs
IDJonction, IDClasseprincipale, IDClasseLiee1, IDClasseLiee2
Dans le Form detail de Classe principale, j’aimerais afficher dans un ListView les Informations correspondantes contenues dans la Table de Jonction.
Pour cela, j’ai fait
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Dim ListeCC As New List(Of MaClasse)
Public Sub ChargementListViewCC()
Dim QueryCC = From c In ctx.MaClasses Where c. IDClasseprincipale = IDClassePrincipaleEnCours Select c
ListeCC = QueryCC.ToList
If ListeCC.Count = 0 Then Exit Sub
For Each cc In ListeCC
Dim MyLine As ListViewItem = New ListViewItem(New String() {cc.IDJonction, cc.ClasseLiee1.Libelle, cc. ClasseLiee2.libelle})
ListViewCC.Items.Add(MyLine)
Next
End Sub |
Le chargement s’effectue sans pb !
J’ai ensuite fait une fonction delete
Code:
1 2 3 4 5 6 7
| Private Sub DeleteCC
Dim CC As New Jonction
CC = ctx.Jonctions.Find(IDAsupprimer)
ctx.Jonctions.Remove(CC)
ctx.SaveChanges()
Call ChargementListViewCC()
End Sub |
Pas de pb, la liste se met bien à jour !
J’ai ensuite voulu faire une fonction Add
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Private Sub AddCC
Dim NewCC as new Junction
With NewCC
.IDClasseprincipale = IDClassePrincipaleEncours
. IDClasseLiee1 = nouvelID1 valeur vérifiée auparavant
. IDClasseLiee2 = nouvelID2 valeur vérifiée auparavant
End With
ctx.Jonctions.Add(NewCC)
ctx.SaveChanges()
Call ChargementListViewCC() Pour recharger la liste
End Sub |
Et là, pb :
Une exception non gérée du type 'System.NullReferenceException' s'est produite
Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.
Si je ferme le Form et que je l’ouvre de nouveau, le NewCC apparait bien dans le ListView !
Juste après l’erreur, si je regarde la ListeCC elle contient bien le NewCC crée, avec les bonnes valeur d’ID , mais les ClasseLiee1.Libelle et ClasseLiee2.Libelle sont à Nothing
Le fait de relancer la QueryCC n’a pas rechargé ces informations liées
Comment forcer EF à les recharger ?
Par avance, merci
Bertrand