2009-07-31 6 views
-1

私はnhibernateを使用します。私は顧客を得て、顧客はIListを手に入れました。新しい顧客とCustomerUserを追加すると、このようになります。Nhibernate - このようにお客様を更新しますか?

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

customer.CustomerUsers.Add(customerUser); 

ここで私はcustomerUserを更新したいと思いますが、どうすればよいですか?

答えて

0

変更を保存する方法を尋ねていますか?その場合は、flushキーワードを使用する必要があります。

+0

ここでキーワードをフラッシュするとどういう意味がありますか?私はそれを電子メールに変更するように、customerUserを更新したいと思います。私はidでcustomerUserを取得する必要がありますか、またはidで顧客を取得し、そこからcustomerUserを更新することは可能ですか? –

1

下記のコードを使用してください。 Idが保存されていない値と等しい場合(マッピングファイル内)、IDが保存されていない値と等しくなければINSERTが実行され、UPDATEが実行されます。もちろん、マッピングファイルの設定が正しくない場合、このコレクションは保存されないことがあります。

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

    } 
    catch (NHibernate.HibernateException ex) 
    { 
     tx.Rollback(); 
     throw new Exception(ex.Message); 
    } 
} 
関連する問題