我正在編寫一個.NET Web應用程序在現有數據庫應用程序(SQL服務器)之上。最初的開發者在float
列中存儲貨幣,而不是money
或decimal
。我真的想在我的POCO中使用Decimal
(尤其是因爲我會在得到它們之後對值進行進一步操作)。我可以將十進制屬性映射到浮點數據列
不幸的是,我不能碰的DB模式。有沒有一種方法仍沿用在我的波蘇斯Decimal
,並告訴EF「這沒關係,我知道decimal
和float
沒有相處。我也不喜歡。還是做你最好的。」
由於沒有特殊的配置,我得到這個錯誤:
The specified cast from a materialized 'System.Double' type to the 'System.Decimal' type is not valid.
我使用modelBuilder.Entity(Of myPocoType).Property(Function(x) x.MoneyProperty).HasColumnType("float")
試過了,但讓我這個錯誤:
Schema specified is not valid. Errors:
(195,6) : error 0063: Precision facet isn't allowed for properties of type float.
(195,6) : error 0063: Scale facet isn't allowed for properties of type float.
的可能重複[可在C#實體框架代碼優先地圖彩車是在SQL Server小數(http://stackoverflow.com/questions/14221227/can-entity-framework-code-first-map-floats- in-c-sharp-be-to-decimals-in-sql-serv) –
如何使用視圖來避免醜陋的解決方法? – OzrenTkalcecKrznaric
@OzrenTkalčecKrznarić我對數據庫擁有隻讀訪問權限。其中有很多數據,他們不希望我的更改「意外」破壞任何內容。 –