我正在现有的数据库应用程序(SQL 服务器)之上编写一个 .NET Web 应用程序。最初的开发人员将钱存储在float
列中,而不是money
或decimal
。我真的很想Decimal
在我的 POCO 中使用(特别是因为我将在获得这些值后对它们进行进一步的操作)。
不幸的是,我无法触及数据库架构。有没有办法Decimal
在我的 POCO 中仍然使用并告诉 EF “没关系,我知道decimal
但float
不相处。我也不喜欢它。尽力而为。”
没有特殊配置,我得到这个错误:
从具体化的“System.Double”类型到“System.Decimal”类型的指定转换无效。
我尝试使用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.