J'ai une table "Client" et une Association "ConjointClient" entre "Client" et "Client" :
Client (One) ------> Client (Zero or One)
Ma base de donnée est générée à partir du model.
Je peux donc obtenir le Conjoint (qui est aussi un Client) en utilisant la propriété Client.Conjoint.
J'obtiens la liste des clients et de leurs conjoints en faisant ceci :
Voici la function OnClientSetChanged :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim qClients = From client In _dataService.ClientSet.Expand("Conjoint") Order By client.nom _clients = New DataServiceCollection(Of MyService.Client)(qClients, TrackingMode.AutoChangeTracking, "Clientset", AddressOf OnClientChanged, AddressOf OnClientSetChanged)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Private Shared Function OnClientSetChanged(ByVal entityCollectionChangedinfo As EntityCollectionChangedParams) As Boolean Dim context = entityCollectionChangedinfo.Context If entityCollectionChangedinfo.TargetEntity.GetType = GetType(MyService.Client) Then Dim thisClient As MyService.Client = CType(entityCollectionChangedinfo.TargetEntity, MyService.Client) Select Case entityCollectionChangedinfo.Action Case Specialized.NotifyCollectionChangedAction.Add context.AddObject("ClientSet", thisClient) Return True Case Specialized.NotifyCollectionChangedAction.Remove context.DeleteObject(thisClient) Return True End Select End If Return False End Function
Si je fais :
Le Client est bien sauvegardé dans la base de données mais pas le Conjoint et je n'obtiens aucun message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Client= New Client Client.Conjoint = New Client _clients.Add(client) _dataService.SaveChanges
J'ai remarqué dans la table Client de ma base de donnée qu'un champ conjoint_pkClient a bien été créé et peut être Null. Néanmoins, contrairement à une relation One to Many je ne peux pas faire Client.conjoint_pkClient=Client.pkClient.
Ma question est donc la suivante : Pourquoi le Conjoint n'est pas sauvegardé dans la base de données ?
Merci pour votre aide.
Partager