2009-09-10 8 views
0

sur le formulaire j'ai deux bouton annuler et enregistrer. quand je modifie les données dans la forme après la recherche et appuyez sur sauvegarder, son travail bien et les données enregistrées. Mais quand j'appuie sur annuler et aller à la commande seach montre sa valeur modifiée (que j'ai annulée). Ma question est de savoir comment je peux protéger nhibernate pour montrer seulement la valeur DB pas le contenu temporaire ou le cache?nhibernate datacontext

vous avez raison. Mais le problème est que je n'ai rien à faire sur le bouton d'annulation à l'exception de l'affectation du panneau à null i.e gpanel.Datacontext = null; est en fait que lorsque j'ai cherché l'enregistrement à partir du contrôle de recherche (en double-cliquant sur l'enregistrement), tous les champs sont remplis. Maintenant, si vous modifiez le contenu de n'importe quel champ/zone de texte et appuyez sur Annuler et ouvrez à nouveau la fenêtre de recherche, cela affichera la modification qui est fausse. Nhibernate at-il effectué ce type de fonctionnalité? qu'il maintient lui-même les données mises à jour. Lorsque j'arrête l'application et que je l'exécute à nouveau, elle affiche la valeur de la base de données et non celle de la liste. S'il vous plaît aider Pouvez-vous me guider la fonctionnalité de clonage et la mise en œuvre si cette aide dans ce problème.

Répondre

0

Il semble que vous stockiez des données dans votre objet avant de vous assurer que l'utilisateur veut les enregistrer. Si c'est le cas, je pense que plutôt que de désactiver le cache NHibernate, vous devriez penser à une meilleure approche. Par exemple, si l'utilisateur fournit des informations sur un produit que je ferais comme suit:

public void SaveButtonClicked(object sender,EventArgs e) 
{ 
this.Product.Name=txtName.Text; 
this.Product.Category=(Category)cboCategroy.SelectedItem; 
this.Session.SaveOrUpdate(this.Product); 
this.Session.Flush(); 
} 

Depuis que saveButton est cliqué sur les données sont enregistrées dans le produit si l'utilisateur clique annuler il verra les données originales du produit.