Bonjour,
Je ne vois pas la difference entre
EtCode:dbset.Add(entity);
Sachant que pour ma part la 1ere solution ne marche pas.Code:
1
2 DataContext.Entry(entity).State = System.Data.EntityState.Added; dataContext.SaveChanges();
Merci
Version imprimable
Bonjour,
Je ne vois pas la difference entre
EtCode:dbset.Add(entity);
Sachant que pour ma part la 1ere solution ne marche pas.Code:
1
2 DataContext.Entry(entity).State = System.Data.EntityState.Added; dataContext.SaveChanges();
Merci
Normalement ça marche si t'a pas de detectChanges désactivé
Code:
1
2
3
4
5
6
7
8 using(var ctx =new MyContext()){ ctx.MaTable.add (MonObjet ) ctx.SaveChanges() }
Il faut aussi appeler SaveChanges après Add
http://msdn.microsoft.com/en-us/library/gg679587.aspxCitation:
Adds the given entity to the context underlying the set in the Added state such that it will be inserted into the database when SaveChanges is called.
Ce sont 2 facons de faire la meme chose ?
Par exemple dans mon cas .Add et .Remove fonctionnent bien, par contre .Attach pas du tout, je suis donc obligé d'utiliser dataContext.Entry(entity).State = EntityState.Modified;
la question m'intéresse également, merci de l'avoir posée topolino.
jusqu'ici pour ajouter une entité je me cassais pas la tete :
et pour modifier :Code:MonContext.add(MonEntite);
avec un SaveChanges() à la fin ça passe comme une lettre à la poste.Code:
1
2 MonEntite.Param1 = XXX;
Mais voila que je découvre tout une procédure pour ajouter / modifier une entité :
- faire appel au "Attach()"
- définir l'EntityState à travers ObjectContextManager.
- lancer un appel au ApplyOriginalValues / ApplyCurrentValues du ObjectContext (dont je n'ai pas compris l'utilisation de l'un ou de l'autre d'ailleurs).
Si quelqu'un qui maitrise le sujet pouvait nous dire les différences, pourquoi utiliser l'une ou l'autre des "méthodes", les inconvenients / avantages etc.
en attendant de creuser en parallèle.
merci d'avance