2010-03-17 8 views
2

Dans mon deuxième projet ASP.NET MVC, je suis confronté à un problème très étrange: lorsque j'appelle la méthode SubmitChanges de la classe DataContext, rien ne se met à jour dans la base de données. C'est bizarre parce que tout fonctionne bien avec mon premier projet. J'utilise une base de données distante créée dans Sql Server Management Studio, j'ai essayé d'y faire des requêtes et dans Visual Studio 2010 (où j'ai la connexion à la base de données), elles fonctionnent toutes.ASP.NET LINQ à SQL SubmitChanges() ne met pas à jour la base de données

Où le problème peut-il être caché?

DBDataContext DB = new DBDataContext(); 
var myuser = DB.Users.Single(u => u.ID == id); 
myuser.Age = 45; 
DB.SubmitChanges(); 

SOLUTION

Ceci est embarrassant: D En effet, je ne pas de clé primaire. Maintenant ça marche!

Merci à tout le monde!

+1

Pouvez-vous s'il vous plaît montrer du code. – AxelEckenberger

+0

Ajout de l'exemple de code. – Alex

+0

Êtes-vous sûr que l'âge d'origine n'est pas déjà 45? Si vous définissez la valeur à la valeur existante, alors il ne peut pas commettre Essayez d'utiliser le même datacontext en dehors de MVC, donc vous pouvez isoler les facteurs contributifs – TobyEvans

Répondre

3

Table, KEY :): :) :)

Insérer KEY TABLE !!!!!

+0

Oh mon dieu! C'est embarrassant: D En effet, je n'avais pas de clé primaire. Je vous remercie! – Alex

+0

Pouah! Celui-ci m'a aussi. Une petite chose si simple à oublier dans une table. – Chris

0

Peut-être qu'il n'y a rien à envoyer à la base de données? SubmitChanges() seulement soumettra des données modifiées ou nouvelles, si vous n'en avez pas non plus, cela n'aura aucun effet persistant.

Vous voudrez peut-être lire ScottGu's series on Linq pour en savoir un peu plus sur Linq, ou vous pouvez vouloir par un livre comme Linq in action.

0

Est-il possible que les entités que vous modifiez ne soient pas connectées au DataContext? Cela les empêcherait de provoquer des mises à jour de votre base de données.

+0

J'ai créé la classe linq en sql comme décrit dans le didacticiel nerdinner ... puis-je vérifier s'ils sont connectés? – Alex

0

Je vérifierais votre chaîne de connexion. Vous n'êtes peut-être pas connecté à la base de données à laquelle vous pensez vous connecter.

Questions connexes