1
我們使用將整數值保存到varchar列的遺留數據庫。我們需要將此列映射到Int32屬性,並且如果數據庫列中的數據爲數字或NULL,則它工作良好。(流利)NHibernate - 將Varchar映射到Int32
但是,如果列包含空字符串而不是null,那麼我們會遇到問題--nhibernate會拋出無法將其轉換爲整數的錯誤。
是否可以配置類映射來自動將異常提升到的所有值都轉換爲默認值(在這種情況下爲零)?
我們使用將整數值保存到varchar列的遺留數據庫。我們需要將此列映射到Int32屬性,並且如果數據庫列中的數據爲數字或NULL,則它工作良好。(流利)NHibernate - 將Varchar映射到Int32
但是,如果列包含空字符串而不是null,那麼我們會遇到問題--nhibernate會拋出無法將其轉換爲整數的錯誤。
是否可以配置類映射來自動將異常提升到的所有值都轉換爲默認值(在這種情況下爲零)?
可能使用攔截器轉換值。您可以通過搜索「空值替換」來獲得一些建議。
但是你真的有這個需求嗎?您可以映射varchar列的專用或只讀成員,並使用其他屬性來控制它。
private string _varcharField;
public string VarcharField
{
get { return _varcharField; }
}
public int IntProperty
{
get { [parse and return _varcharField]; }
set { _varcharField = value.ToString(); }
}
在這個例子中,_varcharField將使用訪問策略映射到NHibernate中。
謝謝,這是我想做的事情,如果它不能通過映射完成。 – nihique 2009-04-10 07:14:13