Je construis une application de bureau avec Castle ActiveRecord et je veux être capable de faire l'équivalent de 1 session nHibernate par formulaire de fenêtre. Des idées sur comment puis-je faire cela avec Active Record?Comment créer différentes sessions pour différentes fenêtres dans une application de bureau avec ActiveRecord?
Plus précisément, j'ai une fenêtre principale qui vous permet de parcourir les données (en lecture seule), puis vous pouvez ouvrir des formulaires distincts pour éditer les données.
Chaque fois qu'un formulaire est ouvert, je veux créer une nouvelle session, obtenir une copie des données à éditer (ainsi il peut être changé sans encore affecter les données dans la fenêtre principale). Je veux ensuite être en mesure de manipuler cette copie via la liaison de données. Et enfin, soit valider les modifications (si l'utilisateur choisit de sauvegarder) ou les annuler (si l'utilisateur choisit d'annuler).
Des idées?
Merci pour la réponse. Si je n'utilise pas SessionScope, va-t-il réellement créer une instance séparée de l'élément de données à éditer? La raison pour laquelle je pose la question est parce qu'un autre problème que je rencontre est si tous les deux utilisent la même instance (même si je ne sauvegarde pas) les messages INotifyPropertyChanged vont à la fenêtre principale - que je ne veux pas. Donc, travailler avec une copie discrète sonne mieux si c'est possible? –
MERCI !! Je suis sur le point de me rendre à la conférence CodeMash pour la semaine, mais j'essaierai certainement ceci quand je serai de retour. Question rapide - cela va-t-il permettre un chargement paresseux (par exemple, via une liaison de données - donc des appels qui ont eu lieu en dehors du nouveau ConversationalScope (conversation))? –
Oui, j'ai même souligné cela dans un commentaire dans ce test. Je l'ai amélioré aujourd'hui, je pense que ce sera complet d'ici la fin de la semaine. – MZywitza