2010-08-22 7 views
0

J'ai un fichier .mdf auquel j'essaie d'ajouter un enregistrement, en utilisant linq en C#. Mon code est:L'enregistrement d'insertion LINQ simple ne fonctionne pas

dbDataContext context = new dbDataContext(); 
book b = new book(); 
b.title = "Test Book"; 
b.isbn = "123789"; 
context.books.InsertOnSubmit(b); 
context.SubmitChanges(); 

Lorsque ce code est exécuté, l'enregistrement est inséré, et je reçois aucun message d'erreur. Si j'utilise l'explorateur de base de données pour ajouter un enregistrement avec les données selfsame, cela fonctionne.

Que se passe-t-il?

+0

Peut-être que votre code s'exécute dans une transaction qui n'est pas validée? –

+0

Est-ce que votre dbDataContext pointe vers la bonne base de données? Pouvez-vous sortir des données avec context.books.ToList()? –

+0

non, ce n'est pas dans une transaction –

Répondre

1

Généralement, lorsque cela se produit, cela indique les modifications apportées à la base de données incorrecte. Vérifiez vos paramètres de connexion dans votre dbml. Pour tester la théorie, essayez d'ajouter un ou deux enregistrements par programme et si vous avez un champ d'identité dans cette base de données, après context.SubmitChanges() vérifie quelle est la valeur de b.Id (où Id est égal à votre colonne IDENTITY). Si elle a une valeur, alors vous avez certainement un problème de connexion & vous devriez vérifier pour une autre base de données. Portez une attention particulière à votre répertoire bin/debug.

+0

Sincères remerciements pour votre aide. J'étais en train de me baiser et j'ai copié ma base de données dans le répertoire bin au moment de l'exécution, donc je travaillais sur une copie temporaire. –

+0

haha! Pas de soucis, mec. Cela m'arrive tout le temps. J'ai récemment travaillé avec le framework M $ Sync et j'ai eu quelque chose de très similaire hier. M'a occupé pendant 4 heures. Lemme savoir s'ils embauchent quand vous obtenez ce travail de service alimentaire! ;) – coderpros