9
votes

Pouvons-nous mettre en œuvre la transaction sur les objets C #?

Pouvons-nous utiliser la transaction sur les objets C #.

Toutes les transactions ne sont que pour une base de données relationnelle comme MSSQL, Oracle, etc. ??

Merci.


8 Réponses :


0
votes

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 verrouillage : xxx

efface simplement liste mais garantit qu'il ne peut pas être modifié par un autre fil en même temps.


0 commentaires

1
votes

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).


0 commentaires

3
votes

Vous pouvez être intéressé par Mémoire transactionnelle logicielle . Il existe une implémentation dans le monde .Net, nommé stm.net .

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.

Voici le blog de l'équipe Microsoft STM.NET: http://blogs.msdn.com/ STMTEAM /


1 commentaires

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.



4
votes

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é mot-clé, moniteurs, poignées d'attente, etc.

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:


0 commentaires

1
votes

Regardez la mémoire transactionnelle logicielle (STM.NET).

Il ne l'a pas fait dans .NET 4 mais est disponible en tant que téléchargement séparé


0 commentaires

1
votes

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.


0 commentaires

0
votes

Vous pouvez utiliser le transactionsCope Class .


2 commentaires

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



1
votes

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.


0 commentaires