我有一個用戶對象,它上面有一個Country對象。我在用戶映射文件中使用多對一標籤來映射:更新多對一的關係
<many-to-one name="Country" column="CountryID" cascade="none"/>
如何更新用戶的國家?
目前我的用戶界面有一個國家的下拉列表和新國家的ID傳遞給控制器。控制器然後從該值中設置用戶國家的ID。所以:
var user = session.Get<User>(userID);
user.Country.ID = Convert.ToInt32(Request.Form["Country_ID"]);
但是,當我打電話:
session.SaveOrUpdate(user);
我得到一個錯誤,指出「國家的一個實例的標識由7改爲8」。據推測這是因爲Country對象被NHibernate標記爲髒?我不想更新國家對象,只是用戶的ID參考。這樣做有可能嗎?
感謝, 喬恩
其實你不一定需要nhibernate來檢索數據。 ISession的Load和Get之間有一個小的區別。其中一人懶洋洋地工作,另一人立即檢索。 – Min 2008-11-06 18:44:12