2009-07-31 28 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? – 2009-07-31 17:36:03

1

使用下面的代碼。如果Id等於未保存值(在映射文件中),則在完成INS時,如果Id不等於未保存值,則執行INSERT。當然,如果映射文件中的設置不正確,則可能無法保存此集合。

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

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