Personnellement, je stocke la date dans l'objet en UTC, puis convertit dans l'objet lors de la lecture/écriture. Vous pouvez ensuite référencer le champ de sauvegarde que votre propriété utilise dans le mapping (ce n'est pas tout à fait aussi "fluide" de le faire de cette façon mais vous pouvez utiliser FluentNH pour mapper ceci). Si la valeur UTC peut avoir une valeur dans le code, exposez-la.
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");
}
}
On dirait un double de http://stackoverflow.com/questions/1547133/rehydrating-fluent-nhibernate-configured-datetime-as-kind-utc-rather-than-unspec/6118935#6118935 –
En ce qui concerne réhydratation avec le temps local, qui devrait vraiment être une préoccupation de présentation. Sinon, vous pourriez finir par stocker des dates mélangées. –
bien, en fait, ma question est toujours valide, puisque le lien que vous référence mentionne juste que cela devrait être fait avec un mappage personnalisé, mais ne fournit pas le code d'exemple. J'espérais une solution où la cartographie ajustait automagiquement les temps selon les besoins – Alex