按照該StackOverflow的問題 'NHibernate和SQL時間戳列的版本',我用下面的映射:NHibernate的 - 試圖得到它使用一個SQL Server行版本
<version name="RowNumber" generated="always" unsaved-value="null" type="BinaryBlob">
<column name="RowNumber" not-null="false" sql-type="timestamp" />
</version>
<property name="CreateDate" column="CreateDate" type="DateTime" update="false" insert="false" />
(此後的其他物業)。
但是當我跑我的ASP.MVC程序,我得到:
[路徑] \ Clients.hbm.xml(7,90):XML驗證錯誤:元素「金塔:NHibernate的映射 - 2.2:版本'不能包含子元素'urn:nhibernate-mapping-2.2:column',因爲父元素的內容模型是空的。
但據我所見2.2是映射的最新版本,所以任何人都可以在版本元素中放置一個列元素?
很抱歉,如果這是非常基本的,
感謝您的回覆 - 但是,這會產生: 無法在Byte []類型的字段RowNumber0_投值的類型TimestampType。請檢查以確保映射是正確的,並確保您的DataProvider支持此數據類型。 根據Ayende的博客,SQL服務器rowversion/timestamp需要映射到BinaryBlob – BruceK 2009-12-27 21:38:16
啊,我明白了。您是否嘗試過BinaryBlob數據類型或Int32或類似的東西?我使用Timestamp是因爲NHibernate文檔說你只能使用很少的幾種類型:Int64,Int32,Int16,Ticks,Timestamp或TimeSpan。 – 2009-12-27 23:19:20