2016-08-19 18 views
0

この問題を解決するにはどうすればよいですか? NHibernateのは、私はデLongTimePatternを設定していてもDateTimeの変数NHibernateはDateTime変数からミリ秒を切り捨てます

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

からのミリ秒を切り捨てる:ここ

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)のゼロも表示されませんでした。 – Kino

+0

データベース列は、ミリ秒単位で同じ値を取得します。 – Kino

答えて

1

ゼロであることをあなたが気づくことができる を保存した後に発生した結果クエリがあります答え、hbm.xmlにtype="Timestamp"を追加しました

<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> 
関連する問題