Ich versuche zu verstehen, warum Entity Framework 4 auf zwei Dezimalstellen aufrundet, wenn im EF-Schemamodell und in der Datenbank die Genauigkeit auf 4 festgelegt ist.Entity Framework rundet auf zwei Dezimalstellen, wenn alles für vier Dezimalstellen festgelegt ist
das ist mein Schema-Definition für eine der Dezimalfeld:
Dies ist meine Datenbankdefinition
CREATE TABLE OrderItems(
....
[SellPrice] [decimal](19, 4) NOT NULL,
....
Wenn ich meine INSERT-Abfrage nach Berechnung des Verkaufspreises des Produkts ausführen, wie ich sehe, dass es
genug dezimalDie Miniprofiler meine Abfrage zeigen und es zeigt, dass der Wert seine dezimal
DECLARE ...
@15 Decimal = '100,54347826086956521739130435',
...
insert [dbo].[OrderItems](..., [SellPrice], ...)
values (..., @15, ....)
select [OrderItemId]
from [dbo].[OrderItems]
where @@ROWCOUNT > 0 and [OrderItemId] = scope_identity()
hat
Aber wenn ich den Microsoft SQL Profiler schauen durch, wird die SellPrice
gerundet
exec sp_executesql N'insert [dbo].[OrderItems](..., [SellPrice], ...)
values (..., @15, ...)',
...,@15=100.54,...'
Ich habe Probleme zu finden, wo der Wert gerundet wird.
generieren Ist dieser Beitrag hilfreich? http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/c423a005-6a42-4f8d-aab6-e13fe3bdffba – mbeckish