差分

ナビゲーションに移動 検索に移動

Fluent NHibernate/フルーエントマッピング/日付型

1,363 バイト追加, 2012年7月8日 (日) 10:05
ページの作成:「Fluent NHibernateMySQLの組み合わせでは、C#のDateTimeやTimeSpanなどの日付型においてミリ秒以下が落ちる。 これはM...」
[[Fluent NHibernate]]と[[MySQL]]の組み合わせでは、[[C Sharp|C#]]のDateTimeやTimeSpanなどの日付型においてミリ秒以下が落ちる。

これはMySQL側の仕様の問題で、MySQLのDATETIME型およびTIMESPAMP型が秒単位の精度までであることに起因する。

== エンティティ ==
public class TimeSpace
{
public virtual long Id { get; protected set; }
public virtual DateTime DateTime { get; set; }
public virtual TimeSpan TimeSpan { get; set; }
}

== マッピング ==
public class TimeSpaceMap : ClassMap<TimeSpace>
{
public TimeSpaceMap()
{
Id(x => x.Id).GeneratedBy.Identity();

Map(x => x.DateTime);

Map(x => x.TimeSpan);
}
}

== スキーマ ==
[[C Sharp|C#]]側のDateTime型は[[MySQL]]側のDATETIME型にマッピングされている。
一方、C#側のTimeSpan型はMySQL側のBIGINT型にマッピングされている。
<source lang="mysql>
CREATE TABLE TimeSpace (
Id bigint(20) NOT NULL AUTO_INCREMENT,
DateTime datetime DEFAULT NULL,
TimeSpan bigint(20) DEFAULT NULL,
PRIMARY KEY (Id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
</source>

== 解決策 ==
知らん。
{{stub}}

== 関連項目 ==
* [[Fluent NHibernate]]
* [[Fluent NHibernate/フルーエントマッピング]]

== 参考文献 ==
<references/>

== 外部リンク ==

{{stub}}
匿名利用者

案内メニュー