Entity Framework 使 double 可以为 null 属性

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:

时出现以下错误

The property 'TotalVolume' on entity type 'Employee' cannot be marked as nullable/optional because the type of the property is 'double' which is not a nullable type. Any property can be marked as non-nullable/required, but only properties of nullable types and which are not part of primary key can be marked as nullable/optional.

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

    public double? TotalVolume{ get; set; }

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

SQL 中的

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

Entity Framework 映射这些类型,使它们具有相同的含义,但不要求它们具有相同的名称。