0 votes

Mettre à jour une entité avec Linq to SQL, dois-je appeler d'abord attach ?

Mon code ressemble à :

Entity e = new Entity();

e.name = "...";
e.blah = 234;

MyDb.UpdateEntity(e);

public static void UpdateEntity(Entity e)
{
    using(MyDatacontext dc = new MyDataContext())
    {

          dc. ?????????
    }

}

Alors que dois-je faire ici pour mettre à jour l'entité?

Remarque: je l'ai juste appelé entité ici, c'est quelque chose d'autre dans mon projet.

3voto

AxelEckenberger Points 9546

Cela dépend vraiment du contexte de vos données. Normalement, vous aurez un objet pour chaque table de votre base de données. Par exemple, si vous avez une base de données avec une table de commandes, vous aurez un objet Orders dans votre DataContext (créé en faisant glisser la table dans votre fichier dbml dans le concepteur).

Donc, pour une nouvelle commande, vous feriez ce qui suit :

using (var ctx = new MyDataContext()) {
    ctx.Orders.InsertOnSubmit(order);

    ctx.SubmitChanges();
}

Et pour enregistrer une commande transmise à votre client et modifiée là-bas, vous faites :

using (var ctx = new MyDataContext()) {
    ctx.Orders.Attach(order, true);

    ctx.SubmitChanges();
}

1voto

Mark Points 5304
dc.GetTable().InsertOnSubmit(e);
dc.SubmitChanges();

http://msdn.microsoft.com/en-us/library/bb763516.aspx

Translated to French:

dc.GetTable().InsertOnSubmit(e);
dc.SubmitChanges();

http://msdn.microsoft.com/en-us/library/bb763516.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X