2010-03-30 7 views
0

Par exempleComment mettre à jour seul objet dans SQL LINQ

a = datacontext.customers.FirstOrDefaul(); 
b = datacontext.customers.Skip(1).FirstOrDefaul(); 

a.name="name1"; 
b.Name="name2"; 

Quand j'appelle DataContext.SubmitChanges(), deux objets mis à jour. Je ne veux pas ça.

J'ai seulement besoin de mettre à jour l'objet a. Comment le faire?

EDIT

WPFWindow windowA=new WPFWINDOW() 
windowA.DataContext=a; 
windowA.Show(); 

WPFWindow windowB=new WPFWINDOW() 
windowB.DataContext=b; 
windowB.Show(); 

Lorsque vous cliquez sur le bouton Enregistrer de la fenêtre, l'économie d'objet correspondant.
Lorsque vous cliquez sur le bouton Annuler, l'objet correspondant n'est pas enregistré

+0

Remarque: Si vous utilisez 'FirstOrDefault', vous devez vous souvenir de vérifier la présence éventuelle de null avant d'accéder aux membres de l'objet. Si vous voulez omettre le test nul parce que vous savez que l'opération va/devrait réussir alors vous devriez utiliser 'First' au lieu de' FirstOrDefault'. –

Répondre

2

Vous devez utiliser un DataContext distinct.

0

Si vous ne souhaitez pas enregistrer les modifications dans b, alors pourquoi affecter b.name = "name2". Utilisez une variable temporaire pour stocker "name2". Plus tard vous pouvez l'assigner à b.name si vous voulez

+0

ne pas utiliser temporaire. L'utilisateur peut enregistrer l'objet "b". peut-être annuler l'objet "b". – ebattulga

0

Ma compréhension est que le but d'un DataContext est d'encapsuler un ensemble de changements à soumettre ensemble. Si vous souhaitez que certaines modifications soient séparées, créez une autre instance DataContext. DataContexts, je crois, sont conçus pour être légers et rapides à créer et à publier. Dans l'application que j'ai créée et qui utilise fortement LINQ to SQL, je crée un DataContext distinct pour chaque fenêtre. N'utilisez PAS de contexte de données partagées pour l'ensemble de votre application. Ce n'est pas comme une connexion à une base de données. C'est pourquoi la connexion à la base de données est un objet distinct.

Questions connexes