Mise à jour d'un enregistrement à l'aide de Linq-to-SQL

Je l'ai fait à de nombreuses reprises et il a travaillé.

Tous les exemples que j'ai trouvé est exactement ce que j'ai..

Je fais ma requête...

var result = from u in tdc.tblUsers
             where u.UserID == userID
             select u;

puis-je changer les valeurs que je veux:

foreach (tblUsers u in result)
{
     //change values (and no im not changing the primary key or foreign keys)
}

puis-je soumettre des modifications

tdc.SubmitChanges();

J'ai aussi essayé de cette façon avant et obtenu la même erreur

tblUsers result = (from u in tdc.tblUsers
                   where u.UserID == userID
                   select u).Single();
result.Address = address;
result.Phone = phone;
tdc.SubmitChanges();

Il ne pourront jamais récupérer 1 enregistrement avec cette requête depuis UserID est la clé primaire.

Quand il frappe de soumettre des modifications, il jette exception que la ligne n'a pas été trouvé ou a été modifié. Je suis la seule personne à l'aide de cette sorte il n'y a pas d'autres conflits avec accès à la db ou de verrouillage. Pourquoi serait-il jeter le ChangeConflictException? J'ai franchi avec le débogueur et les données persiste tout au long du processus, y compris les changements que je suis en train de faire.

Êtes-vous à l'aide de Entity Framework (et si oui, quelle version)?
Aussi, à faire TOUS vos tables de clés primaires. Cela inclut celui que vous êtes en train de modifier et de ramification des tables de clés étrangères.
Vous obtenez cette erreur peut-être parce que l'un de vos champs a quelque chose de différent dans le Linq to SQL designer et dans la base de données réelle.
.NET Framework 4 et oui toutes les tables ont des Clés Primaires et appropriée des clés étrangères. Cette requête est seulement après le 1er tableau, et le tableau n'a pas toutes les clés étrangères. C'est l'une de mes tables de base.
Une raison quelconque vous utilisez SubmitChanges au lieu de SaveChanges? Aussi, quelle est la version de Entité cadre utilisez-vous?

OriginalL'auteur Andy Link | 2013-05-04