Bonjour à tous,
J'ai commencé depuis peu l'ASP .NET (+ c#). Je me suis basé sur un livre pour commencé. Le projet proposé dans ce livre est assez simple et j'ai réussi à l'implémenter sans trop de problème.
J'aimerai maintenant gérer mes objets à ma sauce : Dans le projet du livre : à chaque ajout d'une instance dans le contexte, cette objet est sauvegardé en db :
Vous remarquerez le "CTMSEntities.Save();" qui s'occupe de faire le flush dans la db.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public static class EntityObjectExtensions { public static void addToContext(this EntityObject aObject) { CTMSEntities.DataContext.AddObject(aObject.GetType().Name+"s", aObject); CTMSEntities.Save(); // ICI ! } public static void removeFromContext(this EntityObject aObject) { CTMSEntities.DataContext.DeleteObject(aObject); CTMSEntities.Save(); // ICI ! } public static void reloadFromDb(this EntityObject aObject) { CTMSEntities.DataContext.Refresh(System.Data.Objects.RefreshMode.StoreWins, aObject); } }
Pour éviter la sauvegarde automatique et laisser la possibilité à l'utilisateur de faire le save manuellement, j'ai retiré cette ligne :
Pour vérifier si cela marche correctement, j'ai placé une grid dans mon projet Web.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public static class EntityObjectExtensions { public static void addToContext(this EntityObject aObject) { CTMSEntities.DataContext.AddObject(aObject.GetType().Name+"s", aObject); } public static void removeFromContext(this EntityObject aObject) { CTMSEntities.DataContext.DeleteObject(aObject); } public static void reloadFromDb(this EntityObject aObject) { CTMSEntities.DataContext.Refresh(System.Data.Objects.RefreshMode.StoreWins, aObject); } }
Lors de la création d'un objet, l'objet en question me semble ajouté au contexte, mais n'est pas affiché dans ma grid. Si je remet la ligne "CTMSEntities.Save();" l'objet apparait dans ma grid.
J'aimerai donc savoir ce que je n'ai pas saisi afin de gérer moi même la sauvegarde en db via un boutton "Save" par exemple.
Merci pour votre aide en espérant avoir été assez clair.