Datetime di Nibernate fluente UTC
-
12-12-2019 - |
Domanda
vorrei creare una mappatura di nibernate fluente per mappare un campo DateTime in un modo seguente:
- .
- su Salva - Salva il valore UTC
- su lettura - Regola al valore del fuso orario locale
Qual è il modo migliore per ottenere questa mappatura?
Soluzione
Personalmente, memorizzerei la data nell'oggetto in UTC, quindi convertire nell'oggetto durante la lettura / scrittura.Puoi quindi fare riferimento al campo di supporto La tua proprietà utilizza nella mappatura (non è come "fluente" per farlo in questo modo, ma puoi usare fluentnh per mappare questo).Se il valore UTC potrebbe avere valore in codice in codice, quindi esporlo.
public class MyClass
{
...
//Don't map this field in FluentNH; this is for in-code use
public DateTime MyDate
{
get{return MyDateUTC.ToLocalTime();}
set{MyDateUTC = value.ToUniversalTime();}
}
//map this one instead; can be private as well
public DateTime MyDateUTC {get;set;}
}
...
public class MyClassMap:ClassMap<MyClass>
{
public MyClassMap()
{
Map(x=>x.MyDateUTC).Column("MyDate");
//if you made the UTC property private, map it this way instead:
Map(Reveal.Member<DateTime>("MyDateUTC")).Column("MyDate");
}
}
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow