繁体   English   中英

实体框架使双精度为可空属性

[英]Entity Framework making double a nullable property

我有一个名为TotalVolume的属性,它是一个Double 在构建数据库的代码优先方法中,默认情况下,属性TotalVolume具有一个Not Null值。 我也想让属性TotalVolume接受Null值。

我正在使用FluentAPI,所做的更改如下:

        modelBuilder.Entity<Employee>()
            .Property(p => p.TotalVolume)
            .IsRequired(false);

我在Add-Migration时遇到以下错误:

不能将实体类型“雇员”上的属性“ TotalVolume”标记为可为空/可选,因为属性的类型为“ double”,这不是可为空的类型。 任何属性都可以标记为不可为空/必需,但是只有可为空类型且不属于主键的属性可以被标记为可为空/可选。

此后,我尝试了以下方法,在“ Employee模型”中进行了以下更改。

    public double? TotalVolume{ get; set; }

但是,当我更新数据库时, TotalVolume的数据类型已更改为float 我希望数据类型仍然保持为double

SQL中的float是一个64位值,与.Net中的double相对应,因此它似乎按预期工作。

实体框架会映射这些类型,以便它们具有相同的含义,但不需要它们具有相同的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM