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 映射这些类型,使它们具有相同的含义,但不要求它们具有相同的名称。
我有一个名为 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
.
float
是一个 64 位值,对应于 .Net 中的 double
,因此它似乎按预期工作。
Entity Framework 映射这些类型,使它们具有相同的含义,但不要求它们具有相同的名称。