Bonjour,
voilà j'ai une classe/Table Client qui contient une liste de projet.
J'ai un écran qui m'affiche ue treeview avec le client et comme noeud enfant la liste des projets....
Quand je selectionne le noeud client, j'ai à droite les infos sur le client s(nom, adresse..) que je peux modifier et j'ai également un bouton "Nouveau Projet" qui ajoute un nouveau projet au client.
Maintenant j'aimerai séparer l'enregistrement des données scalaires et des relations. EN effet, imaginons que je modifie le nom du client ET que j'ajoute un nouveau projet, lorsque je ferais mon saveContext, il va m'enregistrer le nouveau nom et le nouveau projet... ce que j'aiemerai ce n'est enregistrer QUE le nom... et laisser l'enregistrerment du nouveau projet à un autre écran...
Pour l'instant la seule facon de faire c'est, 'avant sauver le context, vider ma liste d'opération, puis apres la sauvegarde, la recharger...
Même principe lorsque j'enregistre les données d'un projet, ne sauver QUE le projet et pas les objets reliés...
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 List<Operation> lstOP = new List<Operation>(); foreach(Operation op in client.Operations) { lstOp.Add(op); } client.Operations.Clear(); client.Operations = null; using (var context = new Model()) { context.ApplyChanges("Clients", client); context.SaveChanges(); } foreach(Operation op in lstOp) { client.Operations.Add(op); }
Cette solution à l'air de fonctionner mais me parait un peu lourde... existe t'il une meilleur solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Client client = op.Client; op.Client = null; op.ClientID = client.ID; using (var context = new Model()) { context.ApplyChanges("Operations", op); context.SaveChanges(); } op.Client = client;
Merci de votre aide
Partager