2017-02-24 77 views
1

我試圖在SQL Server中的圖像字段中插入大圖像作爲字節數組時,NHibernate版本4.1.0的問題。我的映射如下所示:NHibernate無法提交交易,由於圖像類型

<property name="BinaryContent" column="MyContent" not-null="false" /> 

問題是無法提交事務。我認爲這是由於一些截斷,因爲小圖像似乎運作良好。

我有一個解決此問題的,不斷變化的映射,並指定類型:

<property name="BinaryContent" column="MyContent" not-null="false" type="BinaryBlob" /> 

但問題是,這是一個非常大的項目有許多映射文件我必須改變。所以我期待在全球範圍內自動完成此項目。

任何解決方案?

(注:在NHibernate的2.1這是工作就像一個魅力)

回答

1

沒有,我害怕。
對於SQL-Server,如果需要的長度大於8000,則需要映射使用BinaryBlob類型,否則必須在映射上明確設置maxixum長度。
byte[]默認爲Binary如果未指定映射類型,請參閱doc。至於爲什麼這是與NH 2.1合作,我不知道。

NH-2764問題證實了這一點。 (關閉爲「不是問題」。)

+1

某些早期版本的NHibernate在某些情況下通過靜默截斷來破壞數據。 –

+0

@OskarBerggren很高興知道!謝謝! – rpfc

+0

@Frédéric非常感謝你!有時間修改我的映射然後... – rpfc