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
Cette ClassePrincipale est liée à une table de jonction dans SQL Server comprenant 4 champs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim QueryPrincipale = From c In ctx. ClassePrincipales Select c QueryPrincipale.Load() ClassePrincipaleBindingSource.DataSource = ctx. ClassePrincipale.Local.ToBindingList
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
Le chargement s’effectue sans pb !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
J’ai ensuite fait une fonction delete
Pas de pb, la liste se met bien à jour !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
J’ai ensuite voulu faire une fonction Add
Et là, pb :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager