Je sais que ce sera étrange, mais je veux déclencher une erreur dans mon application MVC et cette erreur sera basée sur une requête LINQ, où je voudrais obtenir un enregistrement d'une table. Bien que cet enregistrement soit bloqué (base de données/table/ligne) au niveau des commandes T-SQL (par exemple, une boucle infinie mettant toujours à jour cet enregistrement), ma requête LINQ exécutera une requête pour lire cet enregistrement. Lorsque LINQ essaie alors le résultat devrait être un temps mort après 20-30 secondes, quelqu'un a déjà essayé cela?
Si je comprends bien votre question, il semble que vous souhaitiez forcer le verrouillage d'une table à des fins de test. Pour ce faire avec SQL Server, vous pouvez créer et exécuter une procédure stockée qui provoquera un verrou de table exclusif sur la table d'intérêt. Pendant que ce verrou est actif, vous pouvez exécuter le programme que vous souhaitez tester.
La procédure stockée suivante devrait verrouiller votre table pendant 2 minutes. Vous pouvez modifier le paramètre de délai selon vos besoins.
BEGIN TRAN
SELECT 1 FROM TABLE WITH (TABLOCKX)
WAITFOR DELAY '00:02:00'
ROLLBACK TRAN
GO
Une approche générale pour ce faire a été décrite dans le post stackoverflow ci-dessous. Le lien MSDN fournit des informations supplémentaires sur l'instruction WAITFOR.
Message de stackoverflow d'origine
Publication MSDN supplémentaire
J'espère que ça aide.