2010-10-29 6 views
4

L'un de mes objets d'entité (EF4) a une propriété qui est un nombre décimal. Le champ dans la base de données est Decimal (18,2)Entité Cadre Arrondi

Si je définis la valeur à 30.4777, il envoie uniquement 30.47 à la base de données dans l'instruction d'insertion (comme confirmé par le traceur). Y a-t-il un moyen de l'envoyer 30.4777 et ensuite laisser la base de données l'arrondir (ce qui semble heureux de le faire)?

Répondre

2

Vous pouvez définir vous-même les propriétés Precision et Scale de votre champ décimal. Cliquez avec le bouton droit sur la propriété dans le concepteur et choisissez Properties. Dans la fenêtre des propriétés, vous trouverez Precision et Scale. Définissez Scale sur 4 et réessayez vos requêtes.

+0

Il avait déjà un jeu de précision et voulait savoir comment l'arrondir au lieu de le tronquer. Est-ce normal pour EF de tronquer plutôt que rond ??? – Dave

+1

Oui, il est normal que le comportement EF soit tronqué (aussi stupide que cela puisse paraître) voir http://entityframework.codeplex.com/workitem/735 –

+1

Si vous mettez à jour la précision ou l'échelle dans le modèle EDMX pour être différent de la base de données, ceci le changement sera effacé (c.-à-d. réinitialisé) si quelqu'un exécute la commande «Mettre à jour le modèle de la base de données ...» à l'avenir. –