首页 > 解决方案 > 实体框架的可空小数问题

问题描述

我将 EF 与 Oracle 一起使用,并且我有一个带有可为空浮点列的表。当我映射此表时,该列显示为 Nullable Decimal。

在这个表中,我插入了一行,在可为空的列中,我插入了这个数字:

0.0237786257912282

然后,我用 LINQ 调用表:

lList = db.EntTest.ToList();

这样做,Visual Studio 会抛出一个

System.InvalidCastException

如果我更新记录,删除号码,然后我再次调用列表,它会起作用。

有什么建议么?

标签: c#entity-frameworklinqoracle11g

解决方案


正如 StevePy 所说,使用

HasPrecision 

Context.cs中的OnModelCreating函数有效,例如:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<EntTest>().Property(p => p.NUMBER).HasPrecision(15,30);
}

推荐阅读