2009-07-31 4 views
-1

J'utilise nhibernate. J'ai eu un client et client a obtenu un IList .. maintenant quand j'ajoute un nouveau client et CustomerUser je fais comme ceci.Nhibernate - Mettre à jour mon client comme ça?

var customer = new Customer { 
    Name = txtCustomerName.Text, 
    OrgNumber = txtOrgNumber.Text 
}; 
var customerUser = new CustomerUser { 
    Email = txtUserMail.Text, 
    Password = password.Sha1() 
}; 

customer.CustomerUsers.Add(customerUser); 

Maintenant, je veux mettre à jour le customerUser mais comment dois-je faire cela?

Répondre

0

Demandez-vous comment vous pouvez enregistrer vos modifications? Si c'est le cas, vous devez utiliser le mot clé flush.

+0

Je ne suis pas sûr de ce que vous voulez dire avec vider le mot-clé ici? Je veux mettre à jour l'userUser, comme changer l'email à lui ou ainsi. Ai-je besoin d'obtenir le userUser par id ou est-il possible d'obtenir le client par id et de mettre à jour le userUser à travers là, si vous savez ce que je veux dire? –

1

Utilisez le code ci-dessous. Si l'ID est égal à la valeur non enregistrée (dans votre fichier de mappage), un INSERT est effectué si l'ID n'est pas égal à la valeur non enregistrée, une UPDATE est effectuée. Bien sûr, cette collection est peut-être pas enregistrée, si le paramètre dans le fichier de mappage n'est pas correct.

using (ITransaction tx = session.BeginTransaction()) 
{ 
    try 
    { 
     session.SaveOrUpdate(customer); 
     tx.Commit(); 

    } 
    catch (NHibernate.HibernateException ex) 
    { 
     tx.Rollback(); 
     throw new Exception(ex.Message); 
    } 
} 
Questions connexes