0

J'utilise TransactionScope pour exécuter une méthode de test. Je veux que toutes les modifications apportées à la base de données au cours de l'exécution de la méthode de test soient ramenées à l'état précédent à la fin. Pour ce faire, je n'écris pas scope.Complete() à la fin de Scope.Questions concernant le comportement de TransactionScope pour la base de données dans .NET

Ma question:

-ce que les modifications effectuées à la base de données par dbContext.Savechanges() obtient quand je ne Reconvertit écris pas transaction.Complete(); à la fin?

+1

Vous pouvez simplement essayer. Cela fait. –

Répondre

1

L'approche est-elle correcte? En utilisant EF, vous ne pouvez pas utiliser une portée Tx et ne pas enregistrer les modifications. Cela dépend de ce que vous testez - vous ne pouvez pas trouver d'erreurs de modèle sans écrire la base de données.

Ai-je besoin d'ajouter dbContext.SaveChanges();

Cela dépend si vous voulez que cela se produise ou non.

Est-il nécessaire d'écrire des modifications dans la base de données afin que les données puissent être utilisées par d'autres routines ?

Avec tout le respect que vous demandez aux États-Unis? Tu devrais savoir ce que tu veux. Pour les tests unitaires normalement, ce n'est pas le cas - mais pour les tests d'intégration, cela peut être le cas. Tu dois savoir. Je suis toujours étonné quand des gens se présentent ici et demandent des conseils en ignorant le fait que je peux aussi bien lancer un dé sans leur fournir aucune information. Hey, dis-moi la route de ma place au bureau de la compagnie que je veux visiter. Je ne vous dirai ni où je vis ni où je veux aller, mais s'il vous plaît dites-moi comment conduire là-bas. Trouver? J'utilise deux bases de données différentes dans la méthode de test. Je suis en mesure d'accéder à l'un AviTrackEntities mais pas les autres ImportDataEntities.

Ensuite, votre code est défectueux, ou votre configuration. Vous avez déjà appris à faire un rapport de bogue? Cela implique une analyse et l'affichage de THE ERROR. Comment sommes-nous censés savoir sans aucune information?

Y a-t-il une faille dans le code ou quelque chose qui me manque?

Ce qui vous manque totalement, c'est que nous n'avons pas accès à la source, aux machines et à votre cerveau. Nous ne pouvons pas faire un rapport de bug de base pour vous. Compte tenu de l'information - FIX IT. Oui, quelque chose ne va pas. Quoi - aucune idée. Vous préférez ne pas nous aider à vous aider.

Les tests unitaires de base de données sont notoirement compliqués en raison de la nature persistante des bases de données. La réinitialisation de la base de données à un état de démarrage connu peut être complexe.