Pouvons-nous utiliser la transaction sur les objets C #. P>
Toutes les transactions ne sont que pour une base de données relationnelle comme MSSQL, Oracle, etc. ?? P>
Merci. P>
8 Réponses :
Il n'y a pas de transaction de type SQL pour les objets C #, mais si cela est parce que vous avez des problèmes de threading, vous devez utiliser efface simplement liste mais garantit qu'il ne peut pas être modifié par un autre fil en même temps. p> p> verrouillage code>:
Pour une bonne discussion Comment implémenter une transaction dans OOP, jetez un coup d'œil à ce Discussion . Là, le mento et le modèle d'état sont mis en évidence pour atteindre un comportement transactionnel (entre autres méthodes). P>
Vous pouvez être intéressé par Mémoire transactionnelle logicielle . Il existe une implémentation dans le monde .Net, nommé stm.net . P>
Mémoire transactionnelle logicielle (Sm.net) est un mécanisme pour efficace isolement de l'état partagé. Les Programmeur délimite une région de code comme opérant dans une transaction qui est "atomique" et "isolé" d'autres Code transacté fonctionnant simultanément. P> blockQuote>
Voici le blog de l'équipe Microsoft STM.NET: http://blogs.msdn.com/ STMTEAM / P>
Vous avez raison à propos de la STM, mais n'oubliez pas de noter que la STM est toujours dans la recherche, le développement et je ne l'utiliserais pas dans des logiciels de production.
Ce que vous demandez s'appelle Mémoire transactionnelle logicielle . Comme il s'agit actuellement d'une zone de recherche ouverte et il n'y a pas de support de langue C # natif pour le moment, vous pourriez être préférable d'utiliser le Options de synchronisation existantes pour C # , telles que le mot clé code> mot-clé, moniteurs, poignées d'attente, etc. p>
Si vous avez vraiment besoin de fonctionnalités transactionnelles avancées, il y a beaucoup d'implémentations de bibliothèque, consultez cette liste dans Wikipedia pour quelques exemples: P>
Regardez la mémoire transactionnelle logicielle (STM.NET). P>
Il ne l'a pas fait dans .NET 4 mais est disponible en tant que téléchargement séparé p>
Il y avait un Article intéressant sur le blog de Joe Duffy sur la tentative de mémoire transactionnelle à la SEP. Si je devais le résumer, je dirais: ne le faites que vous-même si c'est amusant. P>
Vous pouvez utiliser le transactionsCope Class code > . P>
Ceci est complètement incorrect, le codeCope n'est utilisé que pour DB
Humm .. non. Il peut être utilisé pour tout ce qui implémente ienlistmentnotification
On dirait que Microsoft s'est éloigné de STM. Une partie du raisonnement est donnée ici ici https://www.infoq.com/news / 2010/05 / STM-Draps Bien que je ne suis pas entièrement vendu sur son argument de modification atomique faibles en place. Je pense qu'une transaction fortement atomique où tous les objets de l'État doivent rester à l'intérieur d'une transaction a toujours du mérite. P>
Dupliquer: Stackoverflow.com/questions/2020660/transactions-in-c