「Fluent NHibernate/フルーエントマッピング/日付型」の版間の差分
imported>Administrator ページの作成:「Fluent NHibernateとMySQLの組み合わせでは、C#のDateTimeやTimeSpanなどの日付型においてミリ秒以下が落ちる。 これはM...」 |
imported>Administrator |
||
| (同じ利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
[[Fluent NHibernate]]と[[MySQL]]の組み合わせでは、[[C Sharp|C#]]のDateTimeやTimeSpanなどの日付型においてミリ秒以下が落ちる。 | [[Fluent NHibernate]]と[[MySQL]]の組み合わせでは、[[C Sharp|C#]]のDateTimeやTimeSpanなどの日付型においてミリ秒以下が落ちる。 | ||
これはMySQL側の仕様の問題で、MySQLのDATETIME型およびTIMESPAMP型が秒単位の精度までであることに起因するようだ。 | |||
== エンティティ == | == エンティティ == | ||
<source lang="csharp"> | |||
public class TimeSpace | public class TimeSpace | ||
{ | { | ||
| 10行目: | 11行目: | ||
public virtual TimeSpan TimeSpan { get; set; } | public virtual TimeSpan TimeSpan { get; set; } | ||
} | } | ||
</source> | |||
== マッピング == | == マッピング == | ||
<source lang="csharp"> | |||
public class TimeSpaceMap : ClassMap<TimeSpace> | public class TimeSpaceMap : ClassMap<TimeSpace> | ||
{ | { | ||
| 23行目: | 26行目: | ||
} | } | ||
} | } | ||
</source> | |||
== スキーマ == | == スキーマ == | ||
[[C Sharp|C#]]側のDateTime型は[[MySQL]]側のDATETIME型にマッピングされている。 | [[C Sharp|C#]]側のDateTime型は[[MySQL]]側のDATETIME型にマッピングされている。 | ||
一方、C#側のTimeSpan型はMySQL側のBIGINT型にマッピングされている。 | 一方、C#側のTimeSpan型はMySQL側のBIGINT型にマッピングされている。 | ||
<source lang="mysql> | <source lang="mysql"> | ||
CREATE TABLE TimeSpace ( | CREATE TABLE TimeSpace ( | ||
Id bigint(20) NOT NULL AUTO_INCREMENT, | Id bigint(20) NOT NULL AUTO_INCREMENT, | ||