2016-08-19 90 views
0

我該如何解決這個問題? NHibernate的從日期時間變量NHibernate從DateTime變量截斷毫秒

DataHoraRecebimento = DateTime.Now; 
DataReferencia = new DateTime(2015, 9, 8, 17, 0, 50, 332); 

截斷毫秒即使我去配置LongTimePattern:

enter image description here

這裏是我的HBM配置:

版本3.1.0.4000, 的xmlns =」 urn:nhibernate-mapping-2.2「, MsSql2008Dialect

<class name="MensagemRecebimento" table="dbo.xxx" lazy="true" dynamic-update="true"> 

    <id name="CodigoRecebimentoMensagem" column="COD_RECB_MSG"><generator class="identity" /></id> 
    <property name="DataReferencia"><column name="DATA_REF_MSG" sql-type="datetime" not-null="true" /></property> 
    <property name="DataHoraRecebimento"><column name="DTHR_RECB_MSG" sql-type="datetime" not-null="true" /></property> 

    </class> 

這裏是保存我的對象

NHibernateSessionHelper.Instance.GetSession().Save(obj); 

的代碼,這裏是NHibernate的生成後保存 你可以注意到幾個毫秒零

NHibernate: 
    INSERT 
    INTO 
     dbo.xxx 
     (DATA_REF_MSG, DTHR_RECB_MSG) 
    VALUES 
     (@p7, @p8); 
    select 
     SCOPE_IDENTITY(); 

    @p7 = 08/09/2015 17:00:50.000 [Type: DateTime (0)], 
    @p8 = 19/08/2016 12:42:48.000 [Type: DateTime (0)] 
+0

日期沒有模式或區域設置。模式和區域設置僅*在轉換爲/來自字符串時很重要。請發佈您的查詢。沒有代碼的屏幕截圖根本沒有幫助。 –

+0

沒有配置LongTimePattern,NHibernate查詢甚至沒有顯示從毫秒(.000)開始的零,我認爲這會有所幫助,但我可以刪除que代碼。 – Kino

+0

數據庫列獲得相同的值,而不是毫秒。 – Kino

回答

1

我得到的結果查詢答案,我在type="Timestamp"添加到hbm.xml

<class name="MensagemRecebimento" table="dbo.xxx" lazy="true" dynamic-update="true"> 

    <id name="CodigoRecebimentoMensagem" column="COD_RECB_MSG"> <generator class="identity" /> </id> 
    <property name="DataReferencia" type="Timestamp"> <column name="DATA_REF_MSG" sql-type="datetime" not-null="true" /> </property> 
    <property name="DataHoraRecebimento" type="Timestamp"> <column name="DTHR_RECB_MSG" sql-type="datetime" not-null="true" /></property> 

</class>