J'utilise LINQ to SQL avec Sql Server Compact Edition 3.5 et VS2008.Pourquoi mon LINQ INSERTS ne persiste-t-il pas dans SQL Server CE 3.5?
J'ai une table très simple (Tokens) avec une clé primaire uniqueidentifier (TokenID) et deux autres champs nullables (UsedBy et UsedOn). J'essaie d'utiliser LINQ pour insérer de nouvelles lignes dans la table, mais pour une raison quelconque, elles ne persistent pas.
Voici mon code:
var connectionstring = "Data Source=|DataDirectory|\\MyData.sdf";
MyData db = new MyData(connectionstring) { Log = Console.Out };
Tokens token = new Tokens { TokenID = Guid.NewGuid() };
db.Tokens.InsertOnSubmit(token);
//db.GetChangeSet();
db.SubmitChanges();
var tokens = from t in db.Tokens
select t;
foreach (var t in tokens)
{
Debug.Print(t.TokenID.ToString());
}
Si je décommenter db.GetChangeSet(); Je peux voir l'insertion en attente et quand je les itérez et les imprimez dans la veuve de débogage, le nombre de jetons augmente à chaque fois. Mais si j'interroge la table dans VS (via Show Table Data) il est vide? Visualiser les données comme ceci "réinitialise" les jetons renvoyés par LINQ à leur état d'origine.
Je suis assez sûr que je fais une erreur simple, mais je ne peux pas le voir. Des idées?
après la soumettre, vous devriez probablement utiliser un nouveau DataContext lorsque vous chargez les jetons si vous vouloir vérifier qu'ils peuvent vraiment être lus à partir de la base de données –