Ceci est mon test unitaire (il est tout à fait dénuée de sens, mais prouve un pointNHibernate .query retour des données périmées
Config entity = new Config("key", "value");
Session.SaveOrUpdate(entity);
Config config = Session.Query<Config>().SingleOrDefault(c => c.Key == "key");
Assert.IsNotNull(config);
échoue ... mais je ne pense pas qu'il devrait (note, si je chasse d'eau, il ne manque pas, mais ce n'est pas le comportement que je veux)
Si je remplace la ligne de requête avec cette
Config config = Session.Get<Config>("key");
... il passe
À aucun moment il ne vole (je mets même le FlushMode à jamais juste pour être sûr). Pourquoi l'un réussirait-il, et l'autre non? Cela ne semble pas juste - et je ressemble beaucoup à celui de LINQ pour réussir
Wow, bonne trouvaille! Si vous utilisez la mise en cache de requêtes (je ne suis pas sûr de la façon dont vous faites cela) cela signifie-t-il que .Query et .Get renverraient la même chose? – Paul