Bonjour,
bien qu'en général je préfère poster sur les forums appropriés, je sais par expérience, que personne n'y répondra, aussi vais-je poster ici, où le passage est plus important.
J'utilise Entity Framework et les POCO Entities... jusque là tout va bien.
Sous mon modèle objet j'ai recours à des objets de types TimeSpan... jusque là tout va bien également...
Seulement là où plus rien ne va... c'est que EF4 mappe le type .NET TimeSpan par le type SQL TIME... hors ces deux types ne sont pas identiques, bien au contraire.
En effet, TIME ne permet de stocker qu'une heure située entre 00:00:00 et 23:59:59... donc le décalage horaire journalier.
Le type TimeSpan de .NET lui peut stocker autant d'heures que l'on souhaite... puisqu'il peut stocker des durées sur plusieurs jours...
Or c'est de cet spécificité dont j'ai besoin, côté objet j'ai bien besoin de TimeSpan pour stocker des durées pouvant aller à plusieurs jours (plusieurs fois 24h) et le type TIME ne supporte que le 24h...
Donc comment faire ?
Peut-on obliger EF4 à mapper le type CLR TimeSpan à autre chose qu'à un type TIME ?
peut-on par exemple l'obliger à utiliser un double (vu que TimeSpan possède une conversion dans les 2 sens en double) ou dans un entier et représenter ainsi le nombre de secondes ?
Pour moi c'est plus qu'important car un simple changement de type SQL me permettrais de ne pas changer tout le code d'un projet qui est déjà censé être en production et qui représente plusieurs centaines de milliers de lignes de code... et m'économiserait de changer une partie de la logique en restockant les valeurs manuellement sous forme de secondes...
Nota pour moi il est impossible d'envisager autre chose que des types TimeSpan ne serait ce qu'à cause de toute l'interface GUI écrite en WPF MVVM... cela obligerait à faire beaucoup trop de modifications...
DE même en plus de mes timespan, il est obligatoire pour moi de stocker plus que 24h pour une durée...
Si quelqu'un à une idée ou sais comment faire je suis tout ouie.
Merci par avance
Partager